{"version":3,"file":"invitationHandler.chunk.768d54c6a8cd41d70e35.js","mappings":"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","sources":["webpack://apexchatwidgets/./CreateGuid.js","webpack://apexchatwidgets/./logIt.js","webpack://apexchatwidgets/./widgets/core/WidgetFactory.js","webpack://apexchatwidgets/./widgets/core/hooks/getRandomItem.js","webpack://apexchatwidgets/./widgets/core/hooks/saveGoogleAnalyticsClientId.js","webpack://apexchatwidgets/./widgets/InvitationHandler.js","webpack://apexchatwidgets/./widgets/core/hooks/logWidgetShown.js","webpack://apexchatwidgets/./widgets/core/hooks/configureDataDog.js","webpack://apexchatwidgets/./widgets/core/enums/TempCache.js","webpack://apexchatwidgets/./widgets/core/enums/WidgetTypes.js","webpack://apexchatwidgets/./widgets/core/hooks/ChatMode.js","webpack://apexchatwidgets/./widgets/core/hooks/ConvertToArray.js","webpack://apexchatwidgets/./widgets/core/hooks/ParseTimeString.js","webpack://apexchatwidgets/./widgets/core/hooks/BlockedWarningMessages.js","webpack://apexchatwidgets/./widgets/core/hooks/OfficeHoursMonitoring.js","webpack://apexchatwidgets/./widgets/core/hooks/getParameterCaseInsensitive.js","webpack://apexchatwidgets/./widgets/core/hooks/CleanUrl.js","webpack://apexchatwidgets/./widgets/core/hooks/IsUrlBlocked.js","webpack://apexchatwidgets/./widgets/core/hooks/CompanyLevelBlockValidator.js","webpack://apexchatwidgets/./widgets/core/hooks/ConvertTime12to24.js","webpack://apexchatwidgets/./widgets/core/hooks/PadLeftWithLeadingZeros.js","webpack://apexchatwidgets/./widgets/core/hooks/RunAsSoonAs.js","webpack://apexchatwidgets/./widgets/core/hooks/WidgetStates.js","webpack://apexchatwidgets/./widgets/core/hooks/configureGoogleAnalytics4.js","webpack://apexchatwidgets/./widgets/core/hooks/createLinkElementInDOM.js","webpack://apexchatwidgets/./widgets/core/hooks/loadJQuery.js","webpack://apexchatwidgets/./widgets/core/hooks/localstorageAPIExists.js","webpack://apexchatwidgets/./widgets/core/hooks/storageAPIExists.js","webpack://apexchatwidgets/./widgets/core/loadJQueryPlugins.js"],"sourcesContent":["const CreateGuid = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'\r\n .replace(/[xy]/g, (c) => {\r\n const r = (Math.random() * 16) | 0;\r\n const v = c == 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n })\r\n .toUpperCase();\r\n};\r\nexport default CreateGuid;\r\n","const logIt = function (o, tag, logFunc) {\r\n if (ApexChat.isInDevMode) {\r\n let prefix = tag || '';\r\n const date = new Date();\r\n const logTime = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}:${date.getMilliseconds()}`;\r\n let trace = `${logTime}::`;\r\n if (logFunc && typeof logFunc === 'function') {\r\n if (logFunc == console.error) {\r\n prefix = 'Error:: ';\r\n }\r\n trace += prefix + o;\r\n logFunc(trace);\r\n } else {\r\n trace += prefix + o;\r\n window.console.log(trace);\r\n }\r\n }\r\n};\r\nexport default logIt;\r\n","/* eslint-disable no-underscore-dangle */\r\nimport CreateGuid from '../../CreateGuid';\r\nimport isMobile from '../isMobile';\r\nimport WidgetTypes from './enums/WidgetTypes';\r\n\r\nexport default class WidgetFactory {\r\n constructor(type, options) {\r\n this._type = type;\r\n this._options = options;\r\n }\r\n\r\n get type() {\r\n return this._type;\r\n }\r\n\r\n get options() {\r\n return this._options;\r\n }\r\n\r\n async create() {\r\n if (!this.type) {\r\n throw Error('must specify which this.type of widget to create');\r\n }\r\n const widgets = this.widgets || (this.widgets = {});\r\n if (widgets[this.type]) return widgets[this.type];\r\n const generateIDsforV3Widgets = function (type, isGuidBased) {\r\n var dynamic_ids = {\r\n widgetId: type + '_' + CreateGuid(),\r\n iframeId: type + '_frame_' + CreateGuid(),\r\n parentDivId: type + '_wrapper_' + CreateGuid()\r\n };\r\n\r\n var fixed_ids = {\r\n widgetId: type,\r\n iframeId: type + '_frame',\r\n parentDivId: type + '_wrapper'\r\n };\r\n\r\n return isGuidBased ? dynamic_ids : fixed_ids;\r\n };\r\n const ids = generateIDsforV3Widgets(this.type, false);\r\n const optionsWithIds = { ...this.options, ...ids };\r\n if (this.type === WidgetTypes.DropDown) {\r\n const module = await import(/* webpackChunkName: \"registerDropDown\" */ '../../widgets/standardInvitation/RegisterDropDown');\r\n const RegisterDropDown = module.default;\r\n RegisterDropDown();\r\n widgets[this.type] = new apexchat_dropdown_invitation_client(optionsWithIds);\r\n\r\n } else if (this.type == WidgetTypes.ExitPopup && !isMobile()) {\r\n const module = await import(/* webpackChunkName: \"registerExitPopup\" */ '../../widgets/exitpopup/RegisterExitPopup')\r\n const RegisterExitpopup = module.default;\r\n RegisterExitpopup();\r\n widgets[this.type] = new apexchat_exitpopup2_chatwindow_client(optionsWithIds);\r\n\r\n } else if (this.type === WidgetTypes.DOM) {\r\n const module = await import(/* webpackChunkName: \"registerDOM\" */ '../../widgets/dom/RegisterDOM')\r\n const RegisterDOM = module.default;\r\n RegisterDOM();\r\n widgets[this.type] = new apexchat_dompopup_chatwindow_client(optionsWithIds);\r\n\r\n } else if (this.type === WidgetTypes.Bar) {\r\n const module = await import(/* webpackChunkName: \"registerBar\" */ '../../widgets/bar/RegisterBar')\r\n const RegisterBar = module.default;\r\n RegisterBar();\r\n widgets[this.type] = new apexchat_bar_invitation_client(optionsWithIds);\r\n\r\n } else if (this.type === WidgetTypes.Tab) {\r\n const module = await import(/* webpackChunkName: \"registerTab\" */ '../../widgets/tab/RegisterTab')\r\n const RegisterTab = module.default;\r\n RegisterTab();\r\n widgets[this.type] = new apexchat_tab_invitation_client(optionsWithIds);\r\n } else if (this.type === WidgetTypes.SMS) {\r\n const module = await import(/* webpackChunkName: \"registerSMS\" */ '../../widgets/sms/RegisterSMS')\r\n const RegisterSMS = module.default;\r\n RegisterSMS();\r\n widgets[this.type] = new apexchat_sms_invitation_client(optionsWithIds);\r\n } else if (this.type === WidgetTypes.PreChat) {\r\n const module = await import(/* webpackChunkName: \"registerPreChat\" */ '../../widgets/prechat/RegisterPreChat')\r\n const RegisterPreChat = module.default;\r\n RegisterPreChat();\r\n widgets[this.type] = new apexchat_prechat_invitation_client(optionsWithIds);\r\n } else if (this.type === WidgetTypes.VisitorForm) {\r\n const module = await import(/* webpackChunkName: \"registerVisitorForm\" */ '../../widgets/visitorInfo/RegisterVisitorForm')\r\n const RegisterVisitorForm = module.default;\r\n RegisterVisitorForm();\r\n widgets[this.type] = new apexchat_ui_visitor_form_client(optionsWithIds);\r\n\r\n } else if (this.type === WidgetTypes.DynamicVisitorForm) {\r\n const module = await import(/* webpackChunkName: \"registerDynamicVisitorForm\" */ '../../widgets/visitorInfo/RegisterDynamicVisitorForm')\r\n const RegisterDynamicVisitorForm = module.default;\r\n RegisterDynamicVisitorForm();\r\n widgets[this.type] = new apexchat_ui_visitor_form_client(optionsWithIds);\r\n } else if (this.type === WidgetTypes.WebSmsForm) {\r\n const module = await import(/* webpackChunkName: \"registerWebSMS\" */ '../../widgets/sms/RegisterWebSMS')\r\n const RegisterWebSMS = module.default;\r\n RegisterWebSMS();\r\n widgets[this.type] = new apexchat_sms_form_client(optionsWithIds);\r\n } else if (this.type === WidgetTypes.Test) {\r\n ApexChat.registerTestWidget();\r\n widgets[this.type] = new apexchat_test_invitation_client(optionsWithIds);\r\n } else if (this.type == WidgetTypes.VideoGreetInvitation) {\r\n const module = await import(/* webpackChunkName: \"registerVideoGreet\" */ '../videogreet/RegisterVideoGreetInvitation')\r\n const RegisterVideoGreetInvitation = module.default;\r\n RegisterVideoGreetInvitation();\r\n widgets[this.type] = new apexchat_video_greet_invitation_client(optionsWithIds);\r\n }\r\n return widgets[this.type];\r\n }\r\n}\r\n","const getRandomItem = function (itemArray) {\r\n if (itemArray && itemArray.length) {\r\n return itemArray[Math.floor(Math.random() * Math.floor(itemArray.length))];\r\n }\r\n return null;\r\n};\r\nexport default getRandomItem;\r\n","import GlobalVariables from '../GlobalVariables';\r\nimport configureGoogleAnalytics4 from './configureGoogleAnalytics4';\r\nimport localstorageAPIExists from './localstorageAPIExists';\r\nimport RunAsSoonAsWithDelay from './RunAsSoonAsWithDelay';\r\nimport getCookieValue from './getCookieValue';\r\n\r\nconst saveGoogleAnalyticsClientId = (measurementId) => {\r\n if (!measurementId) {\r\n return;\r\n }\r\n if (!localstorageAPIExists('livechat_gaClientId')) {\r\n configureGoogleAnalytics4(measurementId);\r\n window.dataLayer = window.dataLayer || [];\r\n const gtag = () => {\r\n window.dataLayer.push(arguments);\r\n };\r\n\r\n gtag('get', measurementId, 'client_id', (clientId) => {\r\n ApexChat.localStorageAPI.Store('livechat_gaClientId', clientId);\r\n RunAsSoonAsWithDelay(() => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open(\r\n 'GET',\r\n `${GlobalVariables.LiveChatServiceUrl\r\n }handlers/googleanalyticshandler.ashx?clientId=${clientId}&visitorId=${getCookieValue(\r\n 'livechat_visitor_id'\r\n )}`\r\n );\r\n xhr.send();\r\n }, () => {\r\n return getCookieValue('livechat_visitor_id') != 'undefined';\r\n },\r\n 1000);\r\n });\r\n }\r\n};\r\nexport default saveGoogleAnalyticsClientId;\r\n","// import { h, render } from 'preact';\r\n// import { useState } from 'preact/hooks';\r\nimport WidgetFactory from './core/WidgetFactory';\r\nimport GlobalVariables from './core/GlobalVariables';\r\nimport WidgetTypes from './core/enums/WidgetTypes';\r\nimport TempCache from './core/enums/TempCache';\r\nimport TimeType from './core/hooks/TimeType';\r\nimport CompanyLevelBlockValidator from './core/hooks/CompanyLevelBlockValidator';\r\nimport ChatMode from './core/hooks/ChatMode';\r\nimport logWidgetShown from './core/hooks/logWidgetShown';\r\nimport { ChatType } from './core/enums/Enum';\r\n// import fixFlash from './core/hooks/fixFlash';\r\nimport WebStorage from './core/hooks/WebStorage';\r\nimport loadJQuery from './core/hooks/loadJQuery';\r\nimport loadJQueryPlugins from './core/loadJQueryPlugins';\r\nimport createLinkElementInDOM from './core/hooks/createLinkElementInDOM';\r\nimport getRandomItem from './core/hooks/getRandomItem';\r\nimport Cookies from './core/hooks/Cookies';\r\nimport WidgetStates from './core/hooks/WidgetStates';\r\nimport getCookieValue from './core/hooks/getCookieValue';\r\nimport storageAPIExists from './core/hooks/storageAPIExists';\r\nimport logIt from '../logIt';\r\nimport saveGoogleAnalyticsClientId from './core/hooks/saveGoogleAnalyticsClientId';\r\nimport configureDataDog from './core/hooks/configureDataDog';\r\n// import Counter from './components/Counter';\r\n// //import styles from './Styles.css';\r\n\r\n// function App() {\r\n// return (\r\n//

\r\n// Hello World! \r\n//

\r\n// );\r\n// }\r\n\r\nexport default class InvitationHandler {\r\n async init(options) {\r\n if (\r\n typeof GlobalVariables.CompanyLevelBlockedPages !== 'undefined' &&\r\n typeof GlobalVariables.CompanyContextRequest !== 'undefined'\r\n ) {\r\n this.companyLevelBlockValidator = new CompanyLevelBlockValidator(\r\n GlobalVariables.CompanyLevelBlockedPages,\r\n GlobalVariables.CompanyContextRequest,\r\n GlobalVariables.CompanyLevelSettings\r\n );\r\n }\r\n\r\n // const tabWidgetRoot = document.createElement('div');\r\n // tabWidgetRoot.setAttribute('id', 'tabWidget');\r\n // tabWidgetRoot.attachShadow({\r\n // mode: 'open'\r\n // });\r\n\r\n // document.body.appendChild(tabWidgetRoot);\r\n\r\n // const preChatWidgetRoot = document.querySelector('#app');\r\n // preChatWidgetRoot.attachShadow({\r\n // mode: 'open'\r\n // });\r\n\r\n // const link = document.createElement('link');\r\n // link.rel = 'stylesheet';\r\n // link.type = 'text/css';\r\n // link.href = `${options.domain}scripts/tabs/styles.css`;\r\n // link.media = 'all';\r\n // // console.log(styles);\r\n // preChatWidgetRoot.shadowRoot.appendChild(link);\r\n\r\n // render(, preChatWidgetRoot.shadowRoot);\r\n // works like main method\r\n // make sure this only runs once otherwise v3 widgets can malfunction due to state management issues; e.g. manageStateForShownInvitation\r\n if (window.ApexChat && window.ApexChat.invitationv3run) {\r\n return;\r\n }\r\n // CHANGE THE PUBLIC PATH OF THE WEBPACK ON THE FLY\r\n // THIS WILL WORK ON INCLUDING FILES 'bundleEntries/invitation.js'\r\n const domain = GlobalVariables.CdnBaseUrl\r\n ? `${GlobalVariables.CdnBaseUrl}`\r\n : options.domain;\r\n __webpack_public_path__ = `${domain}contents/scripts/dist/`;\r\n console.log(`public path: ${__webpack_public_path__}`);\r\n window.ApexChat.invitationv3run = true;\r\n\r\n TempCache.VERSION_INFO = {\r\n 'Profile Version': '3'\r\n };\r\n // extend invitation options with custom options\r\n if (options.profileTexts) {\r\n options.profileTextsHash = {};\r\n for (let i = 0; i < options.profileTexts.length; i++) {\r\n const profileText = options.profileTexts[i];\r\n options.profileTextsHash[profileText.threeLetterISOLanguageName] = profileText;\r\n }\r\n }\r\n this.manageStateForShownInvitation(options);\r\n this.options = options;\r\n this.applyMobileViewport();\r\n // set the agentaliasid cookie for an hr\r\n this.agentAliasId = getCookieValue(TempCache.AGENT_ALIAS_ID_COOKIE);\r\n this.updateAliasCookieValue = false;\r\n this.showAgentImage();\r\n if (this.updateAliasCookieValue) {\r\n Cookies.set(TempCache.AGENT_ALIAS_ID_COOKIE, this.options.agentAliasId, 1 / 24);\r\n this.agentAliasId = this.options.agentAliasId;\r\n }\r\n // fix flash, if necessary\r\n // if (options.fixFlash) {\r\n // fixFlash();\r\n // }\r\n // // if this frameBuster logic is related to DropDown only, move it in there\r\n // if (options.frameBuster) {\r\n // let frameBustCounter = 0;\r\n // let frameBustInterval;\r\n // let frameBusterFn;\r\n // const frameBustCookieName = 'APEX_FRAME_BUST_COUNT';\r\n // if (Cookies.get(frameBustCookieName)) {\r\n // frameBustCounter = parseInt(Cookies.get(frameBustCookieName), 10);\r\n // }\r\n // options.frameBusterMessage =\r\n // options.frameBusterMessage ||\r\n // 'WARNING: You are viewing this page in an unauthorized frame window!';\r\n // frameBusterFn = function () {\r\n // if (top != self) {\r\n // // first, simply try to bust out of the frame;\r\n // // we'll track attempts to do this\r\n // frameBustCounter++;\r\n // Cookies.set(frameBustCookieName, frameBustCounter);\r\n // // 5 attempts (total of 5s)\r\n // // if no luck, we're in a frame, and we shouldn't be. Notify the user.\r\n // if (frameBustCounter > 5) {\r\n // const div = document.createElement('div');\r\n // div.style.position = 'absolute';\r\n // div.style.top = 0;\r\n // div.style.left = 0;\r\n // div.style.zIndex = '999999999';\r\n // div.style.width = '100%';\r\n // div.style.height = '100%';\r\n // div.style.backgroundColor = 'rgba(0,0,0,0.75)';\r\n // div.style.color = '#fff';\r\n // div.style.textAlign = 'center';\r\n // div.style.fontSize = '24px';\r\n // div.style.paddingTop = '150px';\r\n // div.innerHTML = `${options.frameBusterMessage}

Click here to resolve this.`;\r\n // ApexChat.getBody().appendChild(div);\r\n // window.clearInterval(frameBustInterval);\r\n // Cookies.set(frameBustCookieName, '0');\r\n // } else {\r\n // top.location.replace(self.location.href);\r\n // }\r\n // } else {\r\n // window.clearInterval(frameBustInterval);\r\n // }\r\n // };\r\n // frameBustInterval = window.setInterval(frameBusterFn, 1000);\r\n // // run 1x right away\r\n // frameBusterFn();\r\n // }\r\n\r\n // set the operatorId cookie for 10 mins\r\n this.operatorId = getCookieValue(TempCache.OPERATOR_ID_COOKIE);\r\n if (!this.operatorId) {\r\n Cookies.set(TempCache.OPERATOR_ID_COOKIE, this.options.operatorId, 1 / 144);\r\n this.operatorId = this.options.operatorId;\r\n }\r\n if (this.options.operatorInfo) {\r\n this.options.handlerImageUrl = this.options.operatorInfo.imageCloudSecureUrl;\r\n this.options.agentName = this.options.operatorInfo.displayName;\r\n }\r\n // set the visitor Id cookie for 365 days\r\n this.visitorId = getCookieValue(TempCache.VISITOR_ID_COOKIE);\r\n if (!this.visitorId) {\r\n Cookies.set(TempCache.VISITOR_ID_COOKIE, this.options.visitorId, 365);\r\n this.visitorId = this.options.visitorId;\r\n }\r\n // set the profile for 1 day\r\n this.profileId = getCookieValue(TempCache.PROFILE_ID_COOKIE);\r\n if (!this.profileId) {\r\n Cookies.set(TempCache.PROFILE_ID_COOKIE, this.options.profileId, 1);\r\n this.profileId = this.options.profileId;\r\n }\r\n if (this.options.agentName) {\r\n this.agentName =\r\n this.options.agentName.charAt(0).toUpperCase() +\r\n this.options.agentName.substring(1);\r\n }\r\n // export options globally - inside iframes with parent.ApexChat.options\r\n window.ApexChat.options = this.options;\r\n\r\n // Track Google Analytics Client Id\r\n saveGoogleAnalyticsClientId(\r\n this.options.companyTrackingSettings.googleAnalyticsMeasurementId\r\n );\r\n // finally, create all widgets that are enabled\r\n\r\n const loadInvitations = async () => {\r\n logWidgetShown(this.options.companyKey);\r\n logIt('jquery loaded; initializing widgets now...');\r\n // RegisterBaseWidgetClient(); // initialize base client type so other widgets can be created below\r\n await this.createInvitations();\r\n await this.createChatWindows();\r\n if (this.isSmsEnabled()) {\r\n const widget = new WidgetFactory(WidgetTypes.WebSmsForm, ApexChat.options);\r\n await widget.create();\r\n }\r\n // var test = parseTemplate(options.smsPopupFrameStyles, { iframeID: '#' + smsForm.iframeId });\r\n if (ApexChat.options.requestVisitorInfo && ApexChat.options.chatMode == ChatMode.DOM) {\r\n await this.createVisitorForm();\r\n }\r\n\r\n // initialize appInsights\r\n if (env.DataDog) {\r\n configureDataDog();\r\n }\r\n createLinkElementInDOM(\r\n `${GlobalVariables.CdnBaseUrl}contents/scripts/dist/index.css?ver=${env.BUILD_HASH}`\r\n );\r\n };\r\n await loadInvitations();\r\n }\r\n\r\n manageStateForShownInvitation(options) {\r\n // We need to clear state of prechat if the ChatID is not there..\r\n if (\r\n !storageAPIExists(TempCache.CHAT_ID_COOKIE) &&\r\n storageAPIExists(TempCache.PreChat_Message_Sent)\r\n ) {\r\n this.clearPreChatState();\r\n }\r\n if (!storageAPIExists(TempCache.INVITATION_SHOWN)) {\r\n if (ApexChat.storageAPI.Get(WidgetTypes.DOM) !== WidgetStates.ShownMaximized) {\r\n ApexChat.storageAPI.Store(WidgetTypes.DropDown, WidgetStates.ShownMaximized);\r\n if (!storageAPIExists(TempCache.CHAT_ID_COOKIE)) {\r\n // Removing Page Refresh cookie for avoiding Subsequent location of Invitation\r\n ApexChat.storageAPI.Remove(TempCache.IS_PAGE_REFRESHED);\r\n }\r\n }\r\n // clear prechat state if enabled\r\n this.clearPreChatState();\r\n if (options.reShowIntervalMinutes) {\r\n // Storing Cookie for specific amount of time (minutes).\r\n ApexChat.storageAPI.StoreUntil(TempCache.INVITATION_SHOWN, true, {\r\n timeType: TimeType.Minute,\r\n expiringDuration: options.reShowIntervalMinutes\r\n });\r\n }\r\n }\r\n // to check page refresh subsequently\r\n if (storageAPIExists(TempCache.IS_PAGE_REFRESHED)) {\r\n ApexChat.storageAPI.Store(TempCache.IS_PAGE_REFRESHED, true);\r\n } else {\r\n ApexChat.storageAPI.Store(TempCache.IS_PAGE_REFRESHED, false);\r\n }\r\n // set original referrer cookie\r\n ApexChat.storageAPI.Store(\r\n TempCache.OriginalReferrer,\r\n encodeURIComponent(document.referrer).substring(0, 500)\r\n );\r\n }\r\n\r\n clearPreChatState() {\r\n ApexChat.sessionStorageAPI = ApexChat.sessionStorageAPI || WebStorage({ type: 'session' });\r\n ApexChat.sessionStorageAPI.Remove(TempCache.PreChat_Msg_Array);\r\n ApexChat.localStorageAPI.Remove(TempCache.PreChat_Msg_Array);\r\n ApexChat.storageAPI.Remove(TempCache.PreChat_Msg_Array);\r\n ApexChat.sessionStorageAPI.Remove(TempCache.PreChat_Messages_Store);\r\n ApexChat.storageAPI.Remove(TempCache.PreChat_Message_Counter);\r\n ApexChat.storageAPI.Remove(TempCache.PreChat_Last_Message);\r\n ApexChat.storageAPI.Remove(TempCache.PreChat_Message_IDs);\r\n ApexChat.storageAPI.Remove(TempCache.PreChat_Message_Sent);\r\n }\r\n\r\n isSmsEnabled() {\r\n const me = this;\r\n return (\r\n me.options.staticSmsEnabled ||\r\n (me.options.chatTab && me.options.chatTab.chatTabType == ChatType.sms) ||\r\n (me.options.chatbar && me.options.chatbar.chatBarType == ChatType.sms) ||\r\n (me.options.chatbar && me.options.chatbar.chatBarType == ChatType.facebook_sms) ||\r\n (me.options.chatbar && me.options.chatbar.chatBarType == ChatType.standard_sms) ||\r\n (me.options.chatbar && me.options.chatbar.chatBarType == ChatType.standard_sms_facebook)\r\n );\r\n }\r\n\r\n async createVisitorForm() {\r\n const widget = new WidgetFactory(WidgetTypes.VisitorForm, ApexChat.options);\r\n await widget.create();\r\n }\r\n\r\n async createDynamicVisitorForm() {\r\n const widget = new WidgetFactory(WidgetTypes.DynamicVisitorForm, ApexChat.options);\r\n await widget.create();\r\n }\r\n\r\n async createInvitations() {\r\n if (\r\n this.companyLevelBlockValidator &&\r\n this.companyLevelBlockValidator.isBlockedInvitation()\r\n ) {\r\n // company level block invitation\r\n return;\r\n }\r\n // JIRA_4044 - In case of Version #1 This comes null because it contains no ThemeBuilder settings.\r\n if (!ApexChat.options.invitationWidgetStyleCustom) {\r\n // It comes null in version #1\r\n ApexChat.options.invitationWidgetStyleCustom = '';\r\n }\r\n // ===== finally render all widgets/inv types enabled\r\n if (ApexChat.options.invitationWidgetStyleCustom.indexOf('IsChevronStyleDOM') !== -1) {\r\n ApexChat.options.isChevronStyleDOM = true;\r\n }\r\n ApexChat.options.ApexChatDefaultLogLevel = GlobalVariables.ApexChatDefaultLogLevel; // for debugging set this to 1\r\n // load all required resource files (js/css) as a hidden repo\r\n if (ApexChat.options.standardInvitationEnabled) {\r\n const widget = new WidgetFactory(WidgetTypes.DropDown, ApexChat.options);\r\n await widget.create();\r\n }\r\n if (ApexChat.options.chatbar) {\r\n const widget = new WidgetFactory(WidgetTypes.Bar, ApexChat.options);\r\n await widget.create();\r\n }\r\n if (ApexChat.options.chatTab) {\r\n const widget = new WidgetFactory(WidgetTypes.Tab, ApexChat.options);\r\n await widget.create();\r\n }\r\n if (ApexChat.options.staticSmsEnabled) {\r\n const widget = new WidgetFactory(WidgetTypes.SMS, ApexChat.options);\r\n await widget.create();\r\n }\r\n if (ApexChat.options.videoGreetEnabled) {\r\n await loadJQuery();\r\n loadJQueryPlugins(ApexChat.ApexChatJquery);\r\n const widget = new WidgetFactory(WidgetTypes.VideoGreetInvitation, ApexChat.options);\r\n await widget.create();\r\n }\r\n if (ApexChat.options.preChat) {\r\n const widget = new WidgetFactory(WidgetTypes.PreChat, ApexChat.options);\r\n await widget.create();\r\n }\r\n\r\n // uncomment the following if you want to test out things using a TestWidget\r\n // var testWidget = WidgetFactory.create(WidgetTypes.Test, ApexChat.options);\r\n }\r\n\r\n async createChatWindows() {\r\n let chat_win_dom;\r\n if (ApexChat.options.chatMode == ChatMode.DOM) {\r\n const widget = new WidgetFactory(WidgetTypes.DOM, ApexChat.options);\r\n await widget.create();\r\n }\r\n if (\r\n ApexChat.options.exitPopupEnabled &&\r\n !(\r\n this.companyLevelBlockValidator &&\r\n this.companyLevelBlockValidator.isBlockedExitpopup()\r\n )\r\n ) {\r\n const widget = new WidgetFactory(WidgetTypes.ExitPopup, ApexChat.options);\r\n widget.create();\r\n }\r\n // nb. the following code will open Windowed chat\r\n }\r\n\r\n /* functions required to run only once on page */\r\n applyMobileViewport() {\r\n if (this.options.applyMobileViewport && this.options.isMobile) {\r\n const metaTags = document.getElementsByTagName('meta');\r\n let el = null;\r\n for (let i = 0; i < metaTags.length; i++) {\r\n if (metaTags[i].getAttribute('name') == 'viewport') {\r\n el = metaTags[i];\r\n break;\r\n }\r\n }\r\n if (!el) {\r\n el = document.createElement('meta');\r\n el.setAttribute('name', 'viewport');\r\n const head = document.getElementsByTagName('head')[0];\r\n head.appendChild(el);\r\n }\r\n el.setAttribute(\r\n 'content',\r\n 'width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=yes'\r\n );\r\n }\r\n }\r\n\r\n showAgentImage() {\r\n const me = this;\r\n\r\n if (!this.agentAliasId && !this.options.agentAliasId) {\r\n // no cookie set...check for the initializer. if not set there,\r\n // grab a random one and store in the options\r\n if (this.options.agentAliases) {\r\n // load up a random agent alias\r\n const randomAlias = getRandomItem(this.options.agentAliases);\r\n if (randomAlias) {\r\n this.options.agentAliasId = randomAlias.id;\r\n this.options.handlerImageUrl =\r\n randomAlias.imageCloudSecureUrl ||\r\n GlobalVariables.ApexChatBaseUrl + randomAlias.imagePath;\r\n this.options.agentName = me.getAliasDisplayName(randomAlias);\r\n }\r\n }\r\n this.agentAliasId = this.options.agentAliasId;\r\n this.updateAliasCookieValue = true;\r\n } else {\r\n // if there is a value in the cookie for this user, find it\r\n // and load up the image, etc\r\n if (this.options.agentAliases) {\r\n let selectedAlias;\r\n for (let i = 0; i < this.options.agentAliases.length; i++) {\r\n if (this.options.agentAliases[i].id === parseInt(this.agentAliasId, 0)) {\r\n selectedAlias = this.options.agentAliases[i];\r\n break;\r\n }\r\n }\r\n // if not present then get the random value\r\n if (!selectedAlias) {\r\n // get the random alias\r\n selectedAlias = getRandomItem(this.options.agentAliases);\r\n this.updateAliasCookieValue = true;\r\n }\r\n\r\n // set the values\r\n this.options.agentAliasId = selectedAlias.id;\r\n\r\n this.options.handlerImageUrl =\r\n selectedAlias.imageCloudSecureUrl ||\r\n `${GlobalVariables.ApexChatBaseUrl}contents/${selectedAlias.imagePath}`;\r\n this.options.agentName = me.getAliasDisplayName(selectedAlias);\r\n }\r\n }\r\n }\r\n\r\n getAliasDisplayName(alias) {\r\n return this.options.genericHandlerAliasingEnabled\r\n ? this.options.agentName\r\n : alias.displayName;\r\n }\r\n}\r\n","import RunAsSoonAs from './RunAsSoonAs';\r\nimport GlobalVariables from '../GlobalVariables';\r\nimport Cookies from './Cookies';\r\nimport getCookieValue from './getCookieValue';\r\n\r\nconst logWidgetShown = function (companyKey) {\r\n if (getCookieValue('livechat_visitLogged') != 'true') {\r\n RunAsSoonAs(\r\n () => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open(\r\n 'GET',\r\n `${GlobalVariables.ApexChatBaseUrl\r\n }api/invitations/ping?logType=shown&visitorId=${getCookieValue(\r\n 'livechat_visitor_id'\r\n )}&company=${companyKey}`\r\n );\r\n xhr.send();\r\n Cookies.setShortMinutes('livechat_visitLogged', true, 365);\r\n },\r\n () => getCookieValue('livechat_visitor_id') !== '0'\r\n );\r\n }\r\n};\r\nexport default logWidgetShown;\r\n","const configureDataDog = (appEnv) => {\r\n const datadogScript = document.createElement('script');\r\n datadogScript.id = 'DD_RUM';\r\n const head =\r\n document.head || document.getElementsByTagName('head')[0] || document.documentElement;\r\n datadogScript.src = 'https://www.datadoghq-browser-agent.com/us5/v5/datadog-rum-slim.js';\r\n datadogScript.async = true;\r\n datadogScript.rel = 'preconnect';\r\n document.head.appendChild(datadogScript);\r\n datadogScript.onload = () => {\r\n window.DD_RUM.onReady(() => {\r\n const domains = [];\r\n domains.push(env.API_URL);\r\n domains.push(env.InternalCDNBaseUrl);\r\n domains.push(env.ExternalCDNBaseUrl);\r\n window.DD_RUM.init({\r\n clientToken: env.DataDog.clientToken,\r\n applicationId: env.DataDog.applicationId,\r\n // see https://docs.datadoghq.com/getting_started/site/\r\n site: 'us5.datadoghq.com',\r\n service: 'apexwidgets',\r\n env: env.Environment,\r\n // Specify a version number to identify the deployed version of your application in Datadog\r\n // version: '1.0.0',\r\n useCrossSiteSessionCookie: true,\r\n trackSessionAcrossSubdomains: true,\r\n sessionSampleRate: 100,\r\n sessionReplaySampleRate: 20,\r\n trackUserInteractions: true,\r\n trackResources: true,\r\n trackLongTasks: true,\r\n defaultPrivacyLevel: 'mask-user-input',\r\n beforeSend: (event) => {\r\n if (event.type === 'error' && event.error && event.error.stack) {\r\n // Ignore errors not originating from widget script\r\n if (event.error.stack.includes('webpack://apexchatwidgets/')) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n const domainFound = domains.some((domain) => event.view.url.startsWith(domain));\r\n if (event.view.url && !domainFound) {\r\n // do not show telemetry from clients web pages\r\n // console.log(`Blocked telemetry from ${event.view.url}`);\r\n return false; // Discard telemetry not from your domain\r\n }\r\n return true;\r\n }\r\n });\r\n });\r\n };\r\n};\r\nexport default configureDataDog;\r\n","const TempCache = {\r\n VISITOR_HISTORY_COOKIE: 'livechat_visitor_history',\r\n CHAT_IN_PROGRESS_COOKIE: 'livechat_chat_in_progress',\r\n VISITORINFO_IN_PROGRESS_COOKIE: 'livechat_visitorinfo_in_progress',\r\n RL_VISITOR_HISTORY_COOKIE: 'rl_visitor_history',\r\n VISITOR_ID_COOKIE: 'livechat_visitor_id',\r\n AGENT_ALIAS_ID_COOKIE: 'livechat_agent_alias_id',\r\n OPERATOR_ID_COOKIE: 'livechat_operator_id',\r\n PROFILE_ID_COOKIE: 'livechat_profile_id',\r\n CHAT_ID_COOKIE: 'livechat_chat_id',\r\n EXIT_POPUP_CHAT_ID: 'livechat_server_chatid',\r\n chatLanguage: 'eng', // default langauge\r\n CHAT_STATE: 'livechat_chat_state',\r\n CHAT_SOUND_ENABLED: 'livechat_chat_sound_enabled',\r\n TRANSFER_TO_LIVE_AGENT: 'livechat_transfer_live_agent',\r\n APEXCHAT_PRECHAT_MESSAGE_IDS_COOKIE: 'livechat_prechat_message_ids',\r\n APEXCHAT_PRECHAT_MAPPED_QUESTION_COOKIE: 'livechat_prechat_mapped_question',\r\n APEXCHAT_PRECHAT_MESSAGE_SENT_COOKIE: 'livechat_prechat_message_sent',\r\n MINIMUM_DESKTOP_WIDTH: 800,\r\n PRECHAT_Rounded_Message_Popup_Last_Height: 300,\r\n PRECHAT_Rounded_Message_Popup_Current_Height: 290,\r\n IDLE_TYPING_THRESHOLD: 3, // # seconds after which to send the idle update\r\n UNICODE_CH: ['u00AD', 'u0020', 'u2063', 'u00A0', 'u200B'], // unicode invisible character on mobile\r\n UNICODE_EN: ['%C2%AD', '%20', '%E2%81%A3', '%C2%A0', '%E2%80%8B'], // encoded unicode invisible character\r\n UNICODE_INDEX: 0,\r\n CHAT_BAR_Z_INDEX: 10000000,\r\n CONTAINER_Z_INDEX: 9999999,\r\n FAKE_AGENT_ID: 999999999,\r\n EP_INITIAL_LOAD_TIME: null,\r\n WINDOWED_CHAT_STARTED: false,\r\n EP_SetTimeOut: null,\r\n AUTOGREET_AGENT_ID: 888888888,\r\n EP_PREDEFINED_AGENT_ID: 999 /* dummy number to represent predefined msg */,\r\n SIMULATED_AGENT_ID: 2147483647, // /JIRA_3210 - int.MaxValue, // # userid for messages that come from the \"agent\" before we know who the agent is going to be\r\n IS_GREETING_QUESTIONTYPE: false,\r\n REMOVE_NON_ALPHANUMERIC: /[^a-zA-Z0-9]+/g,\r\n VISITOR_TRACKING_COOKIE: 'livechat_invitation_traffic_sources',\r\n WEB_SMS_COOKIE: 'livechat_web_sms_number',\r\n EP_SIDEPANEL_HEADER_TEXT: 'Hello',\r\n EP_SIDEPANEL_WELCOME_TEXT: 'We are ONLINE!
We hate to see you go',\r\n IS_PAGE_REFRESHED: 'livechat_is_page_refreshed',\r\n INVITATION_SHOWN: 'livechat_v3_invitation_shown',\r\n PreChat_Message_Counter: 'livechat_prechat_messagecounter',\r\n PreChat_Last_Message: 'livechat_prechat_lastmessage',\r\n PreChat_Message_IDs: 'livechat_prechat_message_ids',\r\n PreChat_Msg_Array: 'livechat_prechat_msg_array',\r\n PreChat_Messages_Store: 'livechat_prechat_messages_store',\r\n PreChat_Message_Sent: 'livechat_prechat_message_sent',\r\n POKE_MESSAGE_LastJoinBackTime: 'livechat_pokemessages_lastJoinBackTime', // saving responding time of visitor on pokeOverlay\r\n isStaticButtonRegistered: false,\r\n OriginalReferrer: 'livechat_original_referrer',\r\n Continue_Mapping_Applied: 'livechat_continue_mapping_applied',\r\n IDLE_MESSAGE_DELAY: 1,\r\n SMS_TRANSFER_CHAT_DELAY: 5,\r\n RENDER_QT_TIME: 1000, // time to render calendar time QT\r\n INPUT_OLD_VALUE: 'livechat_input_old_value',\r\n SUBSEQUENT_GREETING_COOKIE: 'subsequent_greeting_flag',\r\n SHOW_OPERATOR_NOT_FOUND_OVERLAY: 'livechat_show_operator_not_found_overlay',\r\n TRANSFER_CHAT_SUCCEED: 'transfer_chat_succeed',\r\n USER_REACT_ON_LOC_DISCLAIMER: 'user_reacts_on_loc_disclaimer',\r\n VISITOR_PHONE: 'livechat_visitor_phone'\r\n};\r\nexport default TempCache;\r\n","/**\r\n . An enum used:\r\n . to identify a widget in the iframe-based widgets framework\r\n . as prefix to store cookies for a widget; e.g. states\r\n */\r\nconst WidgetTypes = Object.freeze({\r\n DropDown: 'apexchat_dropdown_invitation',\r\n Bar: 'apexchat_bar_invitation',\r\n Tab: 'apexchat_tab_invitation',\r\n SMS: 'apexchat_sms_invitation',\r\n Static: 'apexchat_static_button',\r\n ExitPopup: 'apexchat_exitpopup2_chatwindow',\r\n DOM: 'apexchat_dompopup_chatwindow',\r\n Windowed: 'apexchat_browser_chatwindow',\r\n Mobile: 'apexchat_mobile_dom_chatwindow',\r\n ChatRoom: 'apexchatroom',\r\n DOMUIController: 'apexchat_dom_ui_controller',\r\n EPUIController: 'apexchat_ep_ui_controller',\r\n // MessageHandler: used for classical msgs styling\r\n MessageHandler: 'apexchat_msg_handler',\r\n // PreChatMessageHandler: for rounded stylish msgs styling\r\n PreChatMessageHandler: 'apexchat_prechat_msg_handler',\r\n PreChat: 'apexchat_prechat_invitation',\r\n VisitorForm: 'apexchat_ui_visitor_form',\r\n DynamicVisitorForm: 'apexchat_ui_dynamic_visitor_form',\r\n WebSmsForm: 'apexchat_sms_form',\r\n Test: 'apexchat_test_invitation',\r\n PokeMessagesOverLay: 'apexchat_poke_messages',\r\n VideoGreetInvitation: 'apexchat_video_greet_invitation',\r\n VideoGreetMessageHandler: 'apexchat_video_greet_msg_handler'\r\n});\r\n\r\nexport default WidgetTypes;\r\n","const ChatMode = {\r\n Windowed: 1,\r\n DOM: 2\r\n};\r\nexport default ChatMode;\r\n","/**\r\n * Convert string to array\r\n * @param {string} list\r\n */\r\nconst ConvertToArray = function (list) {\r\n if (list) {\r\n return list.split(',');\r\n }\r\n return [];\r\n};\r\nexport default ConvertToArray;\r\n","/**\r\n * Conver 24hrs string format to datetime\r\n * @param {any} 24hrs format e.g '15:00'\r\n */\r\nconst ParseTimeString = function (time24h) {\r\n const splitted = time24h.split(':');\r\n const dateTime = new Date();\r\n dateTime.setHours(splitted[0]);\r\n dateTime.setMinutes(splitted[1]);\r\n\r\n return dateTime;\r\n};\r\nexport default ParseTimeString;\r\n","const BlockedWarningMessages = {\r\n // console messages for blocked invitation\r\n Invitation: 'Live Chat has been blocked on this page.',\r\n ExitPopup: 'Exit Popup has been blocked on this page.',\r\n IP: 'Your IP has been blocked for Live Chat.',\r\n SMS: 'Failed to start sms chat - Phone Number was blocked. Phone Number:',\r\n DuringOfficeHours: 'The specified company does not monitor chats after business hours.',\r\n AfterOfficeHours: 'The specified company only monitors chats after business hours.'\r\n};\r\nexport default BlockedWarningMessages;\r\n","const OfficeHoursMonitoring = {\r\n Disabled: 0,\r\n DuringOfficeHours: 1,\r\n AfterOfficeHours: 2\r\n};\r\nexport default OfficeHoursMonitoring;\r\n","const getParameterCaseInsensitive = function (object, key) {\r\n const asLowercase = key.toLowerCase();\r\n return object[Object.keys(object).filter((k) => k.toLowerCase() === asLowercase)[0]];\r\n};\r\nexport default getParameterCaseInsensitive;\r\n","const CleanUrl = (url) => {\r\n if (url && url.trim() !== '') {\r\n // Remove the http:// and https:// prefixes\r\n url = url.trim().replace('http://', '').replace('https://', '').toLowerCase();\r\n // Remove query parameters\r\n const queryIndex = url.indexOf('?');\r\n if (queryIndex > -1) {\r\n url = url.substring(0, queryIndex);\r\n }\r\n // Remove trailing slashes\r\n url = url.replace(/\\/+$/, '');\r\n }\r\n\r\n return url;\r\n};\r\nexport default CleanUrl;\r\n","import CleanUrl from './CleanUrl';\r\n\r\nconst IsUrlBlocked = (blockedUrls, targetUrl) => {\r\n if (blockedUrls && blockedUrls.trim() !== '') {\r\n // Clean the target URL\r\n targetUrl = CleanUrl(targetUrl);\r\n\r\n // Split the blocked URLs list into individual URLs\r\n const blockedUrlList = blockedUrls.split(',');\r\n for (let i = 0; i < blockedUrlList.length; i++) {\r\n const blockedUrl = CleanUrl(blockedUrlList[i]);\r\n // Check for exact match\r\n if (blockedUrl === targetUrl) {\r\n return true;\r\n }\r\n // Check if the blocked URL ends with \"/*\" to handle subdirectories\r\n if (blockedUrl.endsWith('/*')) {\r\n // Remove \"/*\" to get the base URL\r\n const baseBlockedUrl = blockedUrl.substring(0, blockedUrl.length - 2);\r\n\r\n // Check if the targetUrl starts with the base URL\r\n if (targetUrl.startsWith(baseBlockedUrl)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n};\r\nexport default IsUrlBlocked;\r\n","import ConvertToArray from './ConvertToArray';\r\nimport PadLeftWithLeadingZeros from './PadLeftWithLeadingZeros';\r\nimport ParseTimeString from './ParseTimeString';\r\nimport BlockedWarningMessages from './BlockedWarningMessages';\r\nimport ConvertTime12to24 from './ConvertTime12to24';\r\nimport OfficeHoursMonitoring from './OfficeHoursMonitoring';\r\nimport getParameterCaseInsensitive from './getParameterCaseInsensitive';\r\nimport IsUrlBlocked from './IsUrlBlocked';\r\n\r\n/**\r\n * Company Level Validation\r\n * Block invitation and EP on pages\r\n * */\r\nclass CompanyLevelBlockValidator {\r\n constructor(companyLevelBlockSettings, companyContextRequest, companyLevelSettings, pageUrl) {\r\n this.options = {\r\n companyLevelBlockSettings,\r\n companyContextRequest,\r\n companyLevelSettings\r\n };\r\n this.pageUrl = pageUrl || window.location.href; // url of client's website\r\n }\r\n\r\n isBlockedInvitationOnPage() {\r\n let hideInvitation = false;\r\n if (\r\n this.options.companyLevelBlockSettings.allowInvitationOnPages &&\r\n !IsUrlBlocked(\r\n this.options.companyLevelBlockSettings.allowInvitationOnPages,\r\n this.pageUrl\r\n )\r\n ) {\r\n // If it does not match, return from here because we are only allowing invitation on certain pages.\r\n hideInvitation = true;\r\n console.warn(BlockedWarningMessages.Invitation);\r\n } else if (\r\n this.options.companyLevelBlockSettings.blockInvitationOnPages &&\r\n IsUrlBlocked(\r\n this.options.companyLevelBlockSettings.blockInvitationOnPages,\r\n this.pageUrl\r\n )\r\n ) {\r\n // if found, do not execute any further, return from here.\r\n hideInvitation = true;\r\n console.warn(BlockedWarningMessages.Invitation);\r\n }\r\n return hideInvitation;\r\n }\r\n\r\n isBlockedExitpopupOnPage() {\r\n let hideExitPopup = false;\r\n // show invitation on certain pages\r\n if (\r\n this.options.companyLevelBlockSettings.allowExitPopUpOnPages &&\r\n !IsUrlBlocked(\r\n this.options.companyLevelBlockSettings.allowExitPopUpOnPages,\r\n this.pageUrl\r\n )\r\n ) {\r\n // If it does not matches, return from here because we are only allowing invitation on certain pages.\r\n hideExitPopup = true;\r\n console.warn(BlockedWarningMessages.ExitPopup);\r\n } else if (\r\n this.options.companyLevelBlockSettings.blockExitPopUpOnPages &&\r\n IsUrlBlocked(this.options.companyLevelBlockSettings.blockExitPopUpOnPages, this.pageUrl)\r\n ) {\r\n // if found, do not execute any further, return from here.\r\n hideExitPopup = true;\r\n console.warn(BlockedWarningMessages.ExitPopup);\r\n }\r\n return hideExitPopup;\r\n }\r\n\r\n /**\r\n * Get cloudflare connecting IP\r\n * @param {any} req context request object\r\n */\r\n GetConnectingIP(req) {\r\n if (req && req.Headers) {\r\n let headers = req.Headers; // get headers from context object\r\n headers = JSON.parse(headers);\r\n const headerValue = getParameterCaseInsensitive(headers, 'cf-connecting-ip');\r\n return headerValue && headerValue[0];\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Get forwarded for IP\r\n * @param {any} req context request object\r\n */\r\n GetForwardedForIP(req) {\r\n if (req && req.Headers) {\r\n let headers = req.Headers; // get headers from context object\r\n if (req.HasRequest) {\r\n return null;\r\n }\r\n headers = JSON.parse(headers);\r\n const headerValue = getParameterCaseInsensitive(headers, 'x-forwarded-for');\r\n return headerValue && headerValue[0];\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Get visitor IP\r\n * @param {any} request context request object\r\n */\r\n GetVisitorIP(request) {\r\n let ip = this.GetConnectingIP(request); // first check if CloudFlare connecting IP exists\r\n if (!ip) {\r\n ip = this.GetForwardedForIP(request); // then check if Forwarded for IP exists\r\n if (!ip) {\r\n ip = this.options.companyContextRequest.UserHostAddress; // if both above doesnt exist assign user host address\r\n }\r\n }\r\n return ip;\r\n }\r\n\r\n /**\r\n * Check for IP blocked on page\r\n * */\r\n isBlockedIP() {\r\n let hideInvitation = false;\r\n const ip = this.GetVisitorIP(this.options.companyContextRequest); // get visitor IP\r\n if (\r\n this.options.companyLevelBlockSettings.blockedIPAddresses &&\r\n ConvertToArray(this.options.companyLevelBlockSettings.blockedIPAddresses).indexOf(\r\n ip\r\n ) !== -1\r\n ) {\r\n hideInvitation = true;\r\n console.warn(BlockedWarningMessages.IP);\r\n }\r\n return hideInvitation;\r\n }\r\n\r\n /**\r\n * Blocked invitation on basis of each blocking type.\r\n * */\r\n isBlockedInvitation() {\r\n let blockedInvitation = false;\r\n blockedInvitation = this.isBlockedInvitationOnPage(); // first check for invitation blocked on page.\r\n blockedInvitation = !blockedInvitation ? this.isBlockedIP() : blockedInvitation; // if invitation blocked not available then check for IP block\r\n blockedInvitation = !blockedInvitation ? this.isOfficeHoursBlocked() : blockedInvitation; // if invitation blocked not available then check for IP block\r\n return blockedInvitation;\r\n }\r\n\r\n /**\r\n * Blocked EP on basis of each blocking type.\r\n * */\r\n isBlockedExitpopup() {\r\n let blockedEP = false;\r\n blockedEP = this.isBlockedExitpopupOnPage(); // first check for EP blocked on page.\r\n blockedEP = !blockedEP ? this.isBlockedIP() : blockedEP; // if EP blocked not available then check for IP block\r\n blockedEP = !blockedEP ? this.isOfficeHoursBlocked() : blockedEP; // if EP blocked not available then check for Office Hours blocked block\r\n return blockedEP;\r\n }\r\n\r\n /**\r\n * Check for blocked SMS Number\r\n * @param {string} number\r\n */\r\n isSMSNumberBlocked(num) {\r\n let numberBlocked = false;\r\n if (num) {\r\n // show invitation on certain pages\r\n if (\r\n this.options.companyLevelBlockSettings.blockedSMSNumbers &&\r\n ConvertToArray(this.options.companyLevelBlockSettings.blockedSMSNumbers).indexOf(\r\n num\r\n ) !== -1\r\n ) {\r\n numberBlocked = true;\r\n console.warn(BlockedWarningMessages.SMS + num);\r\n }\r\n }\r\n return numberBlocked;\r\n }\r\n\r\n /**\r\n * Check for company office hours\r\n * */\r\n isOfficeHoursBlocked() {\r\n let notAvailable = false;\r\n const noOfDaysInAWeek = 7;\r\n if (this.options.companyLevelSettings) {\r\n const { companyLevelSettings } = this.options;\r\n const now = new Date(); // current date time.\r\n const startTimeArray = ConvertToArray(companyLevelSettings.officeHoursStart); // array of start time from server\r\n const endTimeArray = ConvertToArray(companyLevelSettings.officeHoursEnd); // array of end time from server\r\n const baseUTCOffSet =\r\n (companyLevelSettings.officeHoursTimezone &&\r\n companyLevelSettings.officeHoursTimezone.BaseUtcOffset) ||\r\n 0; // timezone offset from server.\r\n const timeZoneOffSet = parseInt(baseUTCOffSet);\r\n let hoursNow = 0;\r\n if (\r\n companyLevelSettings.officeHoursTimezone.SupportsDaylightSavingTime &&\r\n companyLevelSettings.isDayLightSavingTime\r\n ) {\r\n hoursNow = PadLeftWithLeadingZeros(now.getUTCHours() + (timeZoneOffSet + 1), 2); // get current UTC time and take difference from offset of timzone of server.\r\n } else {\r\n hoursNow = PadLeftWithLeadingZeros(now.getUTCHours() + timeZoneOffSet, 2); // get current UTC time and take difference from offset of timzone of server.\r\n }\r\n // CHAT-13019: for brisbane offset +10 the hoursNow at UTC 18 was becoming 28\r\n // must rotate the clock to 0 after 23\r\n // also day index will shift by 1 as the day\r\n // we must pick the utc dayindex rather then local\r\n let dayIndex = now.getUTCDay();\r\n if (hoursNow > 23) {\r\n hoursNow -= 24;\r\n dayIndex++;\r\n }\r\n\r\n // incase hours now less then zero, minus from 24 to get actual hour\r\n // reduce dayindex by 1 as day will be different then utc day\r\n else if (hoursNow < 0) {\r\n hoursNow = 24 + hoursNow;\r\n dayIndex--;\r\n }\r\n\r\n // need to fix day index if it gets 7 or -1\r\n // must rotate the day index\r\n // since we are now calculating the time by where the company exists\r\n if (dayIndex > 6) dayIndex = 0;\r\n if (dayIndex < 0) dayIndex = 6;\r\n\r\n const minsNow = PadLeftWithLeadingZeros(now.getMinutes(), 2); // get mins.\r\n const timeNow = ParseTimeString(`${hoursNow}:${minsNow}`); // time set according to server specified timezone.\r\n if (\r\n startTimeArray.length != noOfDaysInAWeek &&\r\n endTimeArray.length != noOfDaysInAWeek\r\n ) {\r\n // if all time in a week not defined, it should not apply blocked\r\n return false;\r\n }\r\n const todayStartTime = ParseTimeString(ConvertTime12to24(startTimeArray[dayIndex])); // office hours today's start time\r\n const todayEndTime = ParseTimeString(ConvertTime12to24(endTimeArray[dayIndex])); // office hours today's end time\r\n\r\n if (companyLevelSettings.officeHoursMonitoring == OfficeHoursMonitoring.Disabled) {\r\n // if office hours monitoring is disabled we dont need to apply block\r\n notAvailable = false;\r\n } else if (timeNow >= todayStartTime && timeNow <= todayEndTime) {\r\n // If current time lie between office hours we need to show invitation in case of only during office hours\r\n if (\r\n companyLevelSettings.officeHoursMonitoring ==\r\n OfficeHoursMonitoring.AfterOfficeHours\r\n ) {\r\n notAvailable = true;\r\n console.warn(BlockedWarningMessages.AfterOfficeHours);\r\n } else {\r\n notAvailable = false;\r\n }\r\n } else if (\r\n companyLevelSettings.officeHoursMonitoring ==\r\n OfficeHoursMonitoring.DuringOfficeHours\r\n ) {\r\n notAvailable = true;\r\n console.warn(BlockedWarningMessages.DuringOfficeHours);\r\n } else {\r\n notAvailable = false;\r\n }\r\n }\r\n return notAvailable;\r\n }\r\n}\r\n\r\nexport default CompanyLevelBlockValidator;\r\n","import PadLeftWithLeadingZeros from \"./PadLeftWithLeadingZeros\";\r\n\r\n/**\r\n * Conver 12hrs to 24hrs format\r\n * @param {any} time12h 12hrs format e.g '12:00 AM'\r\n */\r\nconst ConvertTime12to24 = function (time12h) {\r\n // var [cTime, cModifier] = time12h.split(' ');\r\n // var [cHours, cMinutes] = cTime.split(':');\r\n const time12hSplitted = time12h.split(' ');\r\n const cTime = time12hSplitted[0];\r\n const cModifier = time12hSplitted[1];\r\n const cTimeSplitted = cTime.split(':');\r\n let cHours = cTimeSplitted[0];\r\n let cMinutes = cTimeSplitted[1];\r\n if (cHours === '12') {\r\n cHours = '00';\r\n }\r\n if (cModifier === 'PM') {\r\n cHours = parseInt(cHours, 10) + 12;\r\n }\r\n cHours = PadLeftWithLeadingZeros(parseInt(cHours), 2);\r\n cMinutes = PadLeftWithLeadingZeros(parseInt(cMinutes), 2);\r\n return `${cHours}:${cMinutes}`;\r\n};\r\nexport default ConvertTime12to24;\r\n","/**\r\n * Convert number to two digit value string preceding 0s\r\n * @param {int} value number to be converted\r\n * @param {int} totalWidth on how many leading zeros we want\r\n */\r\nconst PadLeftWithLeadingZeros = (value, totalWidth) =>\r\n value.toLocaleString('en-US', {\r\n minimumIntegerDigits: totalWidth,\r\n useGrouping: false\r\n });\r\nexport default PadLeftWithLeadingZeros;\r\n","// A utility function as a better replacement for setTimeOut:\r\n// keeps checking on a boolean condition passed as a 2nd arg\r\n// and then only runs a func after the condition is found to be true\r\nconst RunAsSoonAs = (func, condition) => {\r\n const interval = setInterval(() => {\r\n const conditionResult = condition();\r\n if (typeof condition === 'function' &&\r\n typeof conditionResult === 'boolean' &&\r\n conditionResult) {\r\n func();\r\n clearInterval(interval);\r\n }\r\n }, 0);\r\n};\r\nexport default RunAsSoonAs;\r\n","/**\r\n * All possible states or events for a widget\r\n . Used as suffix along with WidgetTypes to log or store a widget state; e.g:\r\n WidgetTypes.DOM + WidgetStates.Clicked = 'apexchat_dom_chatwindow_clicked'\r\n */\r\nconst WidgetStates = {\r\n Initialized: '_init',\r\n Ready: '_ready',\r\n Created: '_created',\r\n ShownNormal: '_rendered',\r\n ShownMaximized: '_max',\r\n ShownMinimized: '_min',\r\n ShownCollapsed: '_collapsed',\r\n Hidden: '_hidden',\r\n Closed: '_closed',\r\n Clicked: '_clicked',\r\n MouseExit: '_mouse_exit',\r\n Refreshed: '_refreshed',\r\n MessageSent: '_msg_sent',\r\n PoppedOut: '_popout',\r\n VideoClicked: '_video_clicked',\r\n DragNDrop: '_drag_n_drop',\r\n // for old/visitor form\r\n VisitorFormClicked: '_form_clicked',\r\n VisitorFormSubmitted: '_form_submitted',\r\n // for bew/video-visitor form\r\n DynamicVisitorFormClicked: '_dynamic_form_clicked',\r\n DynamicVisitorFormSubmitted: '_dynamic_form_submitted',\r\n DynamicVisitorFormCancelled: '_dynamic_form_cancelled'\r\n};\r\nexport default WidgetStates;\r\n","const configureGoogleAnalytics4 = (measurementId) => {\r\n if (\r\n typeof google_tag_manager === 'undefined' ||\r\n typeof google_tag_manager[measurementId] === 'undefined'\r\n ) {\r\n var google_tag_manager = {};\r\n google_tag_manager[measurementId] = document.createElement('script');\r\n google_tag_manager[measurementId].async = 1;\r\n google_tag_manager[\r\n measurementId\r\n ].src = `https://www.googletagmanager.com/gtag/js?id=${measurementId}`;\r\n document.head.appendChild(google_tag_manager[measurementId]);\r\n }\r\n};\r\nexport default configureGoogleAnalytics4;\r\n","const createLinkElementInDOM = (href, before) => {\r\n const linkNode = document.createElement('link');\r\n linkNode.type = 'text/css';\r\n linkNode.rel = 'stylesheet';\r\n linkNode.href = href;\r\n if (before) {\r\n document\r\n .getElementsByTagName('head')[0]\r\n .insertBefore(linkNode, document.getElementsByTagName('head')[0].firstChild);\r\n } else {\r\n document.getElementsByTagName('head')[0].appendChild(linkNode);\r\n }\r\n};\r\nexport default createLinkElementInDOM","const loadJQuery = async () => {\r\n if (typeof $ !== \"undefined\" && $.fn.jquery >= \"1.1\" && $.fn.jquery < \"3.2\") {\r\n ApexChat.ApexChatJquery = $;\r\n console.log(`jquery already exists on client browswer with version: ${$.fn.jquery}`);\r\n } else {\r\n if (ApexChat.ApexChatJquery) return;\r\n const module = await import(/* webpackChunkName: \"jquery\" */ 'jquery')\r\n console.log(\"jquery loaded!\")\r\n ApexChat.ApexChatJquery = module.default\r\n ApexChat.ApexChatJquery = module.default.noConflict(true);\r\n\r\n }\r\n}\r\nexport default loadJQuery;","const localstorageAPIExists = function (storageName) {\r\n if (!storageName) return;\r\n const prefix = storageName.substring(0, 9);\r\n if (prefix === 'livechat_') {\r\n storageName = storageName.substring(prefix.length, storageName.length);\r\n return (\r\n ApexChat.localStorageAPI.Exists(`apexchat_${storageName}`) ||\r\n ApexChat.localStorageAPI.Exists(`livechat_${storageName}`)\r\n );\r\n }\r\n return ApexChat.localStorageAPI.Exists(storageName);\r\n};\r\nexport default localstorageAPIExists;\r\n","const storageAPIExists = function (storageName) {\r\n if (!storageName) return;\r\n const prefix = storageName.substring(0, 9);\r\n if (prefix === 'livechat_') {\r\n storageName = storageName.substring(prefix.length, storageName.length);\r\n return (\r\n ApexChat.storageAPI.Exists(`apexchat_${storageName}`) ||\r\n ApexChat.storageAPI.Exists(`livechat_${storageName}`)\r\n );\r\n }\r\n return ApexChat.storageAPI.Exists(storageName);\r\n};\r\nexport default storageAPIExists;\r\n","const loadJQueryPlugins = ($) => {\r\n $.fn.removeValidationTooltip = function (config) {\r\n // to remove tooltip just pass tooltip css class name\r\n if (!(config && config.toolTipCss)) {\r\n return;\r\n }\r\n $(this).find(`span.${config.toolTipCss}_text`).remove();\r\n $(this).removeClass(config.toolTipCss);\r\n return this;\r\n };\r\n $.fn.showValidationTooltip = function (config) {\r\n // to show tooltip just pass tooltip text and css class name\r\n if (!(config && config.toolTipText)) {\r\n return;\r\n }\r\n if (config.isPreChatText) {\r\n $(this)\r\n .closest('.apexchat_question_type_single_col')\r\n .find('.apexchat_error_msg')\r\n .remove(); // removing the previous summary.\r\n $(this).closest('.apexchat_rd_prechat_input').addClass(config.toolTipCss);\r\n // appending new sumamry.\r\n $(this)\r\n .closest('.apexchat_question_type_single_col')\r\n .append(\r\n `
${config.toolTipText}
`\r\n );\r\n } else {\r\n $(this).find(`span.${config.toolTipCss}_text`).remove();\r\n $(this).addClass(config.toolTipCss);\r\n $(this).append(\r\n `${config.toolTipText}`\r\n );\r\n }\r\n return this;\r\n };\r\n $.fn.preventTyping = function () {\r\n // prevent user to type anything.\r\n // as for mobile browser, only keyup event works for on screen keyboard so we used keyup event to prevent typing\r\n $(this).keyup(function (e) {\r\n $(this).val('');\r\n });\r\n return this;\r\n };\r\n $.fn.allowTyping = function () {\r\n // allow user to type anything.\r\n // reverting its functionality to normal keyup\r\n $(this).unbind('keyup').keyup();\r\n return this;\r\n };\r\n $.fn.disable = function (options) {\r\n const settings = $.extend(\r\n {\r\n // These are the defaults.\r\n recursively: false,\r\n applyGrayBackground: false\r\n },\r\n options\r\n );\r\n if (settings.applyGrayBackground) {\r\n $(this).addClass('apexchat_disabled_element');\r\n }\r\n $(this).prop('disabled', true).css('pointer-events', 'none');\r\n if (settings.recursively) {\r\n $(this)\r\n .children()\r\n .each(function (index) {\r\n $(this).disable(settings.recursively);\r\n });\r\n }\r\n return this; // to allow method chaining\r\n };\r\n $.fn.populateSelectList = function (\r\n options /* [{ value:'option value', text:'option text' },...] */\r\n ) {\r\n const $dropdown = this;\r\n $.each(options, function () {\r\n const optionElement = $('