{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/shared/helpers/AudioNotificationHelper.js","webpack:///./node_modules/date-fns/esm/toDate/index.js","webpack:///./node_modules/date-fns/esm/addMilliseconds/index.js","webpack:///./app/javascript/widget/helpers/urlParamsHelper.js","webpack:///./app/javascript/widget/constants/errorTypes.js","webpack:///./app/javascript/widget/helpers/popoutHelper.js","webpack:///./node_modules/date-fns/esm/addHours/index.js","webpack:///./app/javascript/shared/constants/sharedFrameEvents.js","webpack:///./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack:///./app/javascript/shared/helpers/colorHelper.js","webpack:///./node_modules/charenc/charenc.js","webpack:///./node_modules/md5/md5.js","webpack:///./node_modules/crypt/crypt.js","webpack:///./node_modules/is-buffer/index.js","webpack:///./app/javascript/sdk/sdk.js","webpack:///./app/javascript/sdk/DOMHelpers.js","webpack:///./app/javascript/sdk/constants.js","webpack:///./app/javascript/sdk/settingsHelper.js","webpack:///./app/javascript/sdk/bubbleHelpers.js","webpack:///./app/javascript/shared/helpers/CustomEventHelper.js","webpack:///./app/javascript/sdk/cookieHelpers.js","webpack:///./app/javascript/sdk/IFrameHelper.js","webpack:///./app/javascript/widget/constants/sdkEvents.js","webpack:///./app/javascript/packs/sdk.js","webpack:///./node_modules/js-cookie/src/js.cookie.js","webpack:///./node_modules/date-fns/esm/_lib/requiredArgs/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","initOnEvents","getAlertAudio","async","baseUrl","requestContext","audioCtx","window","AudioContext","webkitAudioContext","getAudioContext","playSound","audioBuffer","playAudioAlert","source","createBufferSource","buffer","connect","destination","loop","start","type","alertTone","audioRequest","Request","fetch","then","response","arrayBuffer","decodeAudioData","Promise","res","catch","toDate","argument","arguments","argStr","toString","Date","getTime","console","warn","Error","stack","NaN","addMilliseconds","dirtyDate","dirtyAmount","timestamp","amount","buildSearchParamsWithLocale","search","locale","WOOT_WIDGET","$root","$i18n","params","URLSearchParams","append","getLocale","buildPopoutURL","origin","conversationCookie","websiteToken","popoutUrl","URL","searchParams","SET_USER_ERROR","popoutChatWindow","windowUrl","open","focus","err","log","MILLISECONDS_IN_HOUR","addHours","SDK_SET_BUBBLE_VISIBILITY","toInteger","dirtyNumber","number","Number","isNaN","Math","ceil","floor","isWidgetColorLighter","color","colorToCheck","replace","parseInt","substr","charenc","utf8","stringToBytes","str","bin","unescape","encodeURIComponent","bytesToString","bytes","decodeURIComponent","escape","length","push","charCodeAt","String","fromCharCode","join","crypt","isBuffer","md5","message","options","constructor","encoding","Array","slice","isArray","Uint8Array","bytesToWords","a","b","FF","_ff","GG","_gg","HH","_hh","II","_ii","aa","bb","cc","dd","endian","x","_blocksize","_digestsize","undefined","digestbytes","wordsToBytes","asBytes","asString","bytesToHex","base64map","rotl","rotr","randomBytes","random","words","hex","hexToBytes","bytesToBase64","base64","triplet","j","charAt","base64ToBytes","imod4","indexOf","pow","obj","readFloatLE","isSlowBuffer","_isBuffer","addClasses","elm","classes","classList","add","split","toggleClass","toggle","removeClasses","remove","onLocationChange","referrerURL","referrerHost","IFrameHelper","events","BUBBLE_DESIGN","WIDGET_DESIGN","DARK_MODE","getBubbleView","includes","isExpandedView","isFlatWidgetStyle","style","getDarkMode","darkMode","body","document","getElementsByTagName","widgetHolder","createElement","bubbleHolder","chatBubble","closeBubble","notificationBubble","onBubbleClick","props","toggleValue","isOpen","$chatwoot","newIsOpen","onBubbleToggle","removeUnreadClass","holderEl","querySelector","dispatchWindowEvent","eventName","data","event","CustomEvent","detail","createEvent","initCustomEvent","dispatchEvent","REQUIRED_USER_KEYS","ALLOWED_USER_ATTRIBUTES","getUserCookieName","websiteIdentifier","computeHashForUserData","args","identifier","user","reduce","acc","getUserString","setCookieWithDomain","expires","baseDomain","cookieOptions","sameSite","domain","Cookies","set","updateAuthCookie","cookieContent","getUrl","createFrame","getAppFrame","css","innerHTML","appendChild","loadCSS","iframe","cwCookie","widgetUrl","src","allow","id","visibility","holderClassName","position","hideMessageBubble","widgetStyle","initPostMessageCommunication","initWindowSizeListener","preventDefaultScroll","getElementById","getBubbleHolder","getElementsByClassName","sendMessage","contentWindow","postMessage","JSON","stringify","onmessage","e","parse","addEventListener","toggleCloseButton","deltaY","contentHeight","scrollHeight","visibleHeight","offsetHeight","scrollTop","preventDefault","setFrameHeightToFitContent","extraHeight","isFixedHeight","updatedIframeHeight","setAttribute","setupAudioListeners","forEach","removeEventListener","loaded","config","authToken","hasLoaded","campaignsSnoozedTill","showPopoutButton","onLoad","widgetColor","channelConfig","resetTriggered","error","errorType","onMessage","setBubbleLabel","bubbleText","launcherTitle","label","innerText","setAuthCookie","widgetAuthToken","setCampaignReadOn","expireBy","updateCampaignReadStatus","toggleBubble","state","bubbleState","closeWindow","pushEvent","updateIframeHeight","setUnreadMode","addUnreadClass","resetUnreadMode","handleNotificationDot","bubbleElement","unreadMessageCount","contains","closeChat","playAudio","oldHref","location","href","host","bodyList","MutationObserver","mutations","observe","childList","subtree","onLocationChangeListener","className","closeBtnClassName","chatIcon","path","target","bubbleClassName","bubbleIcon","createElementNS","setAttributeNS","bubblePath","textNode","title","createBubbleIcon","background","isMobile","matchMedia","matches","chatwootSDK","run","chatwootSettings","useBrowserLanguage","navigator","language","toggleBubbleVisibility","widgetElm","setUser","hasUserKeys","userCookieName","existingCookieValue","hashToBeStored","setCustomAttributes","customAttributes","keys","deleteCustomAttribute","customAttribute","setConversationCustomAttributes","deleteConversationCustomAttribute","setLabel","removeLabel","setLocale","localeToBeUsed","setColorScheme","reset","factory","OldCookies","api","noConflict","extend","result","attributes","decode","init","converter","defaults","toUTCString","test","write","stringifiedAttributes","attributeName","cookie","json","jar","cookies","parts","read","getJSON","withConverter","requiredArgs","required","TypeError"],"mappings":"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","file":"js/sdk.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2745);\n","export const initOnEvents = ['click', 'touchstart', 'keypress', 'keydown'];\n\nexport const getAudioContext = () => {\n let audioCtx;\n try {\n audioCtx = new (window.AudioContext || window.webkitAudioContext)();\n } catch {\n // AudioContext is not available.\n }\n return audioCtx;\n};\n\nexport const getAlertAudio = async (baseUrl = '', requestContext) => {\n const audioCtx = getAudioContext();\n const playSound = audioBuffer => {\n window.playAudioAlert = () => {\n if (audioCtx) {\n const source = audioCtx.createBufferSource();\n source.buffer = audioBuffer;\n source.connect(audioCtx.destination);\n source.loop = false;\n source.start();\n }\n };\n };\n\n if (audioCtx) {\n const { type = 'dashboard', alertTone = 'ding' } = requestContext || {};\n const resourceUrl = `${baseUrl}/audio/${type}/${alertTone}.mp3`;\n const audioRequest = new Request(resourceUrl);\n\n fetch(audioRequest)\n .then(response => response.arrayBuffer())\n .then(buffer => {\n audioCtx.decodeAudioData(buffer).then(playSound);\n return new Promise(res => res());\n })\n .catch(() => {\n // error\n });\n }\n};\n","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","export const buildSearchParamsWithLocale = search => {\n const locale = window.WOOT_WIDGET.$root.$i18n.locale;\n const params = new URLSearchParams(search);\n params.append('locale', locale);\n\n return `?${params}`;\n};\n\nexport const getLocale = (search = '') => {\n return new URLSearchParams(search).get('locale');\n};\n\nexport const buildPopoutURL = ({\n origin,\n conversationCookie,\n websiteToken,\n locale,\n}) => {\n const popoutUrl = new URL('/widget', origin);\n popoutUrl.searchParams.append('cw_conversation', conversationCookie);\n popoutUrl.searchParams.append('website_token', websiteToken);\n popoutUrl.searchParams.append('locale', locale);\n\n return popoutUrl.toString();\n};\n","export const SET_USER_ERROR = 'SET_USER_ERROR';\n","import { buildPopoutURL } from './urlParamsHelper';\n\nexport const popoutChatWindow = (\n origin,\n websiteToken,\n locale,\n conversationCookie\n) => {\n try {\n const windowUrl = buildPopoutURL({\n origin,\n websiteToken,\n locale,\n conversationCookie,\n });\n const popoutWindow = window.open(\n windowUrl,\n `webwidget_session_${websiteToken}`,\n 'resizable=off,width=400,height=600'\n );\n popoutWindow.focus();\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log(err);\n }\n};\n","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\n\nexport default function addHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);\n}","export const SDK_SET_BUBBLE_VISIBILITY = 'sdk-set-bubble-visibility';\n","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","export const isWidgetColorLighter = color => {\n const colorToCheck = color.replace('#', '');\n const c_r = parseInt(colorToCheck.substr(0, 2), 16);\n const c_g = parseInt(colorToCheck.substr(2, 2), 16);\n const c_b = parseInt(colorToCheck.substr(4, 2), 16);\n const brightness = (c_r * 299 + c_g * 587 + c_b * 114) / 1000;\n return brightness > 225;\n};\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function (str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n // Convert a byte array to a string\n bytesToString: function (bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function (str) {\n for (var bytes = [], i = 0; i < str.length; i++) bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n // Convert a byte array to a string\n bytesToString: function (bytes) {\n for (var str = [], i = 0; i < bytes.length; i++) str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\nmodule.exports = charenc;","(function () {\n var crypt = require('crypt'),\n utf8 = require('charenc').utf8,\n isBuffer = require('is-buffer'),\n bin = require('charenc').bin,\n // The core\n md5 = function (message, options) {\n // Convert to byte array\n if (message.constructor == String) {\n if (options && options.encoding === 'binary') message = bin.stringToBytes(message);else message = utf8.stringToBytes(message);\n } else if (isBuffer(message)) message = Array.prototype.slice.call(message, 0);else if (!Array.isArray(message) && message.constructor !== Uint8Array) message = message.toString();\n // else, assume byte array already\n\n var m = crypt.bytesToWords(message),\n l = message.length * 8,\n a = 1732584193,\n b = -271733879,\n c = -1732584194,\n d = 271733878;\n\n // Swap endian\n for (var i = 0; i < m.length; i++) {\n m[i] = (m[i] << 8 | m[i] >>> 24) & 0x00FF00FF | (m[i] << 24 | m[i] >>> 8) & 0xFF00FF00;\n }\n\n // Padding\n m[l >>> 5] |= 0x80 << l % 32;\n m[(l + 64 >>> 9 << 4) + 14] = l;\n\n // Method shortcuts\n var FF = md5._ff,\n GG = md5._gg,\n HH = md5._hh,\n II = md5._ii;\n for (var i = 0; i < m.length; i += 16) {\n var aa = a,\n bb = b,\n cc = c,\n dd = d;\n a = FF(a, b, c, d, m[i + 0], 7, -680876936);\n d = FF(d, a, b, c, m[i + 1], 12, -389564586);\n c = FF(c, d, a, b, m[i + 2], 17, 606105819);\n b = FF(b, c, d, a, m[i + 3], 22, -1044525330);\n a = FF(a, b, c, d, m[i + 4], 7, -176418897);\n d = FF(d, a, b, c, m[i + 5], 12, 1200080426);\n c = FF(c, d, a, b, m[i + 6], 17, -1473231341);\n b = FF(b, c, d, a, m[i + 7], 22, -45705983);\n a = FF(a, b, c, d, m[i + 8], 7, 1770035416);\n d = FF(d, a, b, c, m[i + 9], 12, -1958414417);\n c = FF(c, d, a, b, m[i + 10], 17, -42063);\n b = FF(b, c, d, a, m[i + 11], 22, -1990404162);\n a = FF(a, b, c, d, m[i + 12], 7, 1804603682);\n d = FF(d, a, b, c, m[i + 13], 12, -40341101);\n c = FF(c, d, a, b, m[i + 14], 17, -1502002290);\n b = FF(b, c, d, a, m[i + 15], 22, 1236535329);\n a = GG(a, b, c, d, m[i + 1], 5, -165796510);\n d = GG(d, a, b, c, m[i + 6], 9, -1069501632);\n c = GG(c, d, a, b, m[i + 11], 14, 643717713);\n b = GG(b, c, d, a, m[i + 0], 20, -373897302);\n a = GG(a, b, c, d, m[i + 5], 5, -701558691);\n d = GG(d, a, b, c, m[i + 10], 9, 38016083);\n c = GG(c, d, a, b, m[i + 15], 14, -660478335);\n b = GG(b, c, d, a, m[i + 4], 20, -405537848);\n a = GG(a, b, c, d, m[i + 9], 5, 568446438);\n d = GG(d, a, b, c, m[i + 14], 9, -1019803690);\n c = GG(c, d, a, b, m[i + 3], 14, -187363961);\n b = GG(b, c, d, a, m[i + 8], 20, 1163531501);\n a = GG(a, b, c, d, m[i + 13], 5, -1444681467);\n d = GG(d, a, b, c, m[i + 2], 9, -51403784);\n c = GG(c, d, a, b, m[i + 7], 14, 1735328473);\n b = GG(b, c, d, a, m[i + 12], 20, -1926607734);\n a = HH(a, b, c, d, m[i + 5], 4, -378558);\n d = HH(d, a, b, c, m[i + 8], 11, -2022574463);\n c = HH(c, d, a, b, m[i + 11], 16, 1839030562);\n b = HH(b, c, d, a, m[i + 14], 23, -35309556);\n a = HH(a, b, c, d, m[i + 1], 4, -1530992060);\n d = HH(d, a, b, c, m[i + 4], 11, 1272893353);\n c = HH(c, d, a, b, m[i + 7], 16, -155497632);\n b = HH(b, c, d, a, m[i + 10], 23, -1094730640);\n a = HH(a, b, c, d, m[i + 13], 4, 681279174);\n d = HH(d, a, b, c, m[i + 0], 11, -358537222);\n c = HH(c, d, a, b, m[i + 3], 16, -722521979);\n b = HH(b, c, d, a, m[i + 6], 23, 76029189);\n a = HH(a, b, c, d, m[i + 9], 4, -640364487);\n d = HH(d, a, b, c, m[i + 12], 11, -421815835);\n c = HH(c, d, a, b, m[i + 15], 16, 530742520);\n b = HH(b, c, d, a, m[i + 2], 23, -995338651);\n a = II(a, b, c, d, m[i + 0], 6, -198630844);\n d = II(d, a, b, c, m[i + 7], 10, 1126891415);\n c = II(c, d, a, b, m[i + 14], 15, -1416354905);\n b = II(b, c, d, a, m[i + 5], 21, -57434055);\n a = II(a, b, c, d, m[i + 12], 6, 1700485571);\n d = II(d, a, b, c, m[i + 3], 10, -1894986606);\n c = II(c, d, a, b, m[i + 10], 15, -1051523);\n b = II(b, c, d, a, m[i + 1], 21, -2054922799);\n a = II(a, b, c, d, m[i + 8], 6, 1873313359);\n d = II(d, a, b, c, m[i + 15], 10, -30611744);\n c = II(c, d, a, b, m[i + 6], 15, -1560198380);\n b = II(b, c, d, a, m[i + 13], 21, 1309151649);\n a = II(a, b, c, d, m[i + 4], 6, -145523070);\n d = II(d, a, b, c, m[i + 11], 10, -1120210379);\n c = II(c, d, a, b, m[i + 2], 15, 718787259);\n b = II(b, c, d, a, m[i + 9], 21, -343485551);\n a = a + aa >>> 0;\n b = b + bb >>> 0;\n c = c + cc >>> 0;\n d = d + dd >>> 0;\n }\n return crypt.endian([a, b, c, d]);\n };\n\n // Auxiliary functions\n md5._ff = function (a, b, c, d, x, s, t) {\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\n return (n << s | n >>> 32 - s) + b;\n };\n md5._gg = function (a, b, c, d, x, s, t) {\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\n return (n << s | n >>> 32 - s) + b;\n };\n md5._hh = function (a, b, c, d, x, s, t) {\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\n return (n << s | n >>> 32 - s) + b;\n };\n md5._ii = function (a, b, c, d, x, s, t) {\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\n return (n << s | n >>> 32 - s) + b;\n };\n\n // Package private blocksize\n md5._blocksize = 16;\n md5._digestsize = 16;\n module.exports = function (message, options) {\n if (message === undefined || message === null) throw new Error('Illegal argument ' + message);\n var digestbytes = crypt.wordsToBytes(md5(message, options));\n return options && options.asBytes ? digestbytes : options && options.asString ? bin.bytesToString(digestbytes) : crypt.bytesToHex(digestbytes);\n };\n})();","(function () {\n var base64map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n crypt = {\n // Bit-wise rotation left\n rotl: function (n, b) {\n return n << b | n >>> 32 - b;\n },\n // Bit-wise rotation right\n rotr: function (n, b) {\n return n << 32 - b | n >>> b;\n },\n // Swap big-endian to little-endian and vice versa\n endian: function (n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++) n[i] = crypt.endian(n[i]);\n return n;\n },\n // Generate an array of any length of random bytes\n randomBytes: function (n) {\n for (var bytes = []; n > 0; n--) bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function (bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8) words[b >>> 5] |= bytes[i] << 24 - b % 32;\n return words;\n },\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function (words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8) bytes.push(words[b >>> 5] >>> 24 - b % 32 & 0xFF);\n return bytes;\n },\n // Convert a byte array to a hex string\n bytesToHex: function (bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n // Convert a hex string to a byte array\n hexToBytes: function (hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2) bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n // Convert a byte array to a base-64 string\n bytesToBase64: function (bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = bytes[i] << 16 | bytes[i + 1] << 8 | bytes[i + 2];\n for (var j = 0; j < 4; j++) if (i * 8 + j * 6 <= bytes.length * 8) base64.push(base64map.charAt(triplet >>> 6 * (3 - j) & 0x3F));else base64.push('=');\n }\n return base64.join('');\n },\n // Convert a base-64 string to a byte array\n base64ToBytes: function (base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length; imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push((base64map.indexOf(base64.charAt(i - 1)) & Math.pow(2, -2 * imod4 + 8) - 1) << imod4 * 2 | base64map.indexOf(base64.charAt(i)) >>> 6 - imod4 * 2);\n }\n return bytes;\n }\n };\n module.exports = crypt;\n})();","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer);\n};\nfunction isBuffer(obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer(obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0));\n}","export const SDK_CSS = `\n:root {\n --b-100: #F2F3F7;\n --s-700: #37546D;\n}\n\n.woot-widget-holder {\n box-shadow: 0 5px 40px rgba(0, 0, 0, .16);\n opacity: 1;\n will-change: transform, opacity;\n transform: translateY(0);\n overflow: hidden !important;\n position: fixed !important;\n transition: opacity 0.2s linear, transform 0.25s linear;\n z-index: 2147483000 !important;\n}\n\n.woot-widget-holder.woot-widget-holder--flat {\n box-shadow: none;\n border-radius: 0;\n border: 1px solid var(--b-100);\n}\n\n.woot-widget-holder iframe {\n border: 0;\n height: 100% !important;\n width: 100% !important;\n max-height: 100vh !important;\n}\n\n.woot-widget-holder.has-unread-view {\n border-radius: 0 !important;\n min-height: 80px !important;\n height: auto;\n bottom: 94px;\n box-shadow: none !important;\n border: 0;\n}\n\n.woot-widget-bubble {\n background: #1f93ff;\n border-radius: 100px;\n border-width: 0px;\n bottom: 20px;\n box-shadow: 0 8px 24px rgba(0, 0, 0, .16) !important;\n cursor: pointer;\n height: 64px;\n padding: 0px;\n position: fixed;\n user-select: none;\n width: 64px;\n z-index: 2147483000 !important;\n}\n\n.woot-widget-bubble.woot-widget-bubble--flat {\n border-radius: 0;\n}\n\n.woot-widget-holder.woot-widget-holder--flat {\n bottom: 90px;\n}\n\n.woot-widget-bubble.woot-widget-bubble--flat {\n height: 56px;\n width: 56px;\n}\n\n.woot-widget-bubble.woot-widget-bubble--flat svg {\n margin: 16px;\n}\n\n.woot-widget-bubble.woot-widget-bubble--flat.woot--close::before,\n.woot-widget-bubble.woot-widget-bubble--flat.woot--close::after {\n left: 28px;\n top: 16px;\n}\n\n.woot-widget-bubble.unread-notification::after {\n content: '';\n position: absolute;\n width: 12px;\n height: 12px;\n background: #ff4040;\n border-radius: 100%;\n top: 0px;\n right: 0px;\n border: 2px solid #ffffff;\n transition: background 0.2s ease;\n}\n\n.woot-widget-bubble.woot-widget--expanded {\n bottom: 24px;\n display: flex;\n height: 48px !important;\n width: auto !important;\n align-items: center;\n}\n\n.woot-widget-bubble.woot-widget--expanded div {\n align-items: center;\n color: #fff;\n display: flex;\n font-family: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, Arial, sans-serif;\n font-size: 16px;\n font-weight: 500;\n justify-content: center;\n padding-right: 20px;\n width: auto !important;\n}\n\n.woot-widget-bubble.woot-widget--expanded.woot-widget-bubble-color--lighter div{\n color: var(--s-700);\n}\n\n.woot-widget-bubble.woot-widget--expanded svg {\n height: 20px;\n margin: 14px 8px 14px 16px;\n width: 20px;\n}\n\n.woot-widget-bubble.woot-elements--left {\n left: 20px;\n}\n\n.woot-widget-bubble.woot-elements--right {\n right: 20px;\n}\n\n.woot-widget-bubble:hover {\n background: #1f93ff;\n box-shadow: 0 8px 32px rgba(0, 0, 0, .4) !important;\n}\n\n.woot-widget-bubble svg {\n all: revert;\n height: 24px;\n margin: 20px;\n width: 24px;\n}\n\n.woot-widget-bubble.woot-widget-bubble-color--lighter path{\n fill: var(--s-700);\n}\n\n@media only screen and (min-width: 667px) {\n .woot-widget-holder.woot-elements--left {\n left: 20px;\n }\n .woot-widget-holder.woot-elements--right {\n right: 20px;\n }\n}\n\n.woot--close:hover {\n opacity: 1;\n}\n\n.woot--close::before, .woot--close::after {\n background-color: #fff;\n content: ' ';\n display: inline;\n height: 24px;\n left: 32px;\n position: absolute;\n top: 20px;\n width: 2px;\n}\n\n.woot-widget-bubble-color--lighter.woot--close::before, .woot-widget-bubble-color--lighter.woot--close::after {\n background-color: var(--s-700);\n}\n\n.woot--close::before {\n transform: rotate(45deg);\n}\n\n.woot--close::after {\n transform: rotate(-45deg);\n}\n\n.woot--hide {\n bottom: -100vh !important;\n top: unset !important;\n opacity: 0;\n visibility: hidden !important;\n z-index: -1 !important;\n}\n\n.woot-widget--without-bubble {\n bottom: 20px !important;\n}\n.woot-widget-holder.woot--hide{\n transform: translateY(40px);\n}\n.woot-widget-bubble.woot--close {\n transform: translateX(0px) scale(1) rotate(0deg);\n transition: transform 300ms ease, opacity 100ms ease, visibility 0ms linear 0ms, bottom 0ms linear 0ms;\n}\n.woot-widget-bubble.woot--close.woot--hide {\n transform: translateX(8px) scale(.75) rotate(45deg);\n transition: transform 300ms ease, opacity 200ms ease, visibility 0ms linear 500ms, bottom 0ms ease 200ms;\n}\n\n.woot-widget-bubble {\n transform-origin: center;\n will-change: transform, opacity;\n transform: translateX(0) scale(1) rotate(0deg);\n transition: transform 300ms ease, opacity 100ms ease, visibility 0ms linear 0ms, bottom 0ms linear 0ms;\n}\n.woot-widget-bubble.woot--hide {\n transform: translateX(8px) scale(.75) rotate(-30deg);\n transition: transform 300ms ease, opacity 200ms ease, visibility 0ms linear 500ms, bottom 0ms ease 200ms;\n}\n\n.woot-widget-bubble.woot-widget--expanded {\n transform: translateX(0px);\n transition: transform 300ms ease, opacity 100ms ease, visibility 0ms linear 0ms, bottom 0ms linear 0ms;\n}\n.woot-widget-bubble.woot-widget--expanded.woot--hide {\n transform: translateX(8px);\n transition: transform 300ms ease, opacity 200ms ease, visibility 0ms linear 500ms, bottom 0ms ease 200ms;\n}\n.woot-widget-bubble.woot-widget-bubble--flat.woot--close {\n transform: translateX(0px);\n transition: transform 300ms ease, opacity 10ms ease, visibility 0ms linear 0ms, bottom 0ms linear 0ms;\n}\n.woot-widget-bubble.woot-widget-bubble--flat.woot--close.woot--hide {\n transform: translateX(8px);\n transition: transform 300ms ease, opacity 200ms ease, visibility 0ms linear 500ms, bottom 0ms ease 200ms;\n}\n.woot-widget-bubble.woot-widget--expanded.woot-widget-bubble--flat {\n transform: translateX(0px);\n transition: transform 300ms ease, opacity 200ms ease, visibility 0ms linear 0ms, bottom 0ms linear 0ms;\n}\n.woot-widget-bubble.woot-widget--expanded.woot-widget-bubble--flat.woot--hide {\n transform: translateX(8px);\n transition: transform 300ms ease, opacity 200ms ease, visibility 0ms linear 500ms, bottom 0ms ease 200ms;\n}\n\n@media only screen and (max-width: 667px) {\n .woot-widget-holder {\n height: 100%;\n right: 0;\n top: 0;\n width: 100%;\n }\n\n .woot-widget-holder iframe {\n min-height: 100% !important;\n }\n\n\n .woot-widget-holder.has-unread-view {\n height: auto;\n right: 0;\n width: auto;\n bottom: 0;\n top: auto;\n max-height: 100vh;\n padding: 0 8px;\n }\n\n .woot-widget-holder.has-unread-view iframe {\n min-height: unset !important;\n }\n\n .woot-widget-holder.has-unread-view.woot-elements--left {\n left: 0;\n }\n\n .woot-widget-bubble.woot--close {\n bottom: 60px;\n opacity: 0;\n visibility: hidden !important;\n z-index: -1 !important;\n }\n}\n\n@media only screen and (min-width: 667px) {\n .woot-widget-holder {\n border-radius: 16px;\n bottom: 104px;\n height: calc(85% - 64px - 20px);\n max-height: 590px !important;\n min-height: 250px !important;\n width: 400px !important;\n }\n}\n\n.woot-hidden {\n display: none !important;\n}\n`;\n","import { SDK_CSS } from './sdk.js';\nimport { IFrameHelper } from './IFrameHelper';\n\nexport const loadCSS = () => {\n const css = document.createElement('style');\n css.innerHTML = `${SDK_CSS}`;\n document.body.appendChild(css);\n};\n\nexport const addClasses = (elm, classes) => {\n elm.classList.add(...classes.split(' '));\n};\n\nexport const toggleClass = (elm, classes) => {\n elm.classList.toggle(classes);\n};\n\nexport const removeClasses = (elm, classes) => {\n elm.classList.remove(...classes.split(' '));\n};\n\nexport const onLocationChange = ({ referrerURL, referrerHost }) => {\n IFrameHelper.events.onLocationChange({\n referrerURL,\n referrerHost,\n });\n};\n\nexport const onLocationChangeListener = () => {\n let oldHref = document.location.href;\n const referrerHost = document.location.host;\n const config = {\n childList: true,\n subtree: true,\n };\n onLocationChange({\n referrerURL: oldHref,\n referrerHost,\n });\n\n const bodyList = document.querySelector('body');\n const observer = new MutationObserver(mutations => {\n mutations.forEach(() => {\n if (oldHref !== document.location.href) {\n oldHref = document.location.href;\n onLocationChange({\n referrerURL: oldHref,\n referrerHost,\n });\n }\n });\n });\n\n observer.observe(bodyList, config);\n};\n","export const BUBBLE_DESIGN = ['standard', 'expanded_bubble'];\nexport const WIDGET_DESIGN = ['standard', 'flat'];\nexport const DARK_MODE = ['light', 'auto', 'dark'];\n","import { BUBBLE_DESIGN, DARK_MODE, WIDGET_DESIGN } from './constants';\n\nexport const getBubbleView = type =>\n BUBBLE_DESIGN.includes(type) ? type : BUBBLE_DESIGN[0];\n\nexport const isExpandedView = type => getBubbleView(type) === BUBBLE_DESIGN[1];\n\nexport const getWidgetStyle = style =>\n WIDGET_DESIGN.includes(style) ? style : WIDGET_DESIGN[0];\n\nexport const isFlatWidgetStyle = style => style === 'flat';\n\nexport const getDarkMode = darkMode =>\n DARK_MODE.includes(darkMode) ? darkMode : DARK_MODE[0];\n","import { addClasses, removeClasses, toggleClass } from './DOMHelpers';\nimport { IFrameHelper } from './IFrameHelper';\nimport { isExpandedView } from './settingsHelper';\n\nexport const bubbleSVG =\n 'M240.808 240.808H122.123C56.6994 240.808 3.45695 187.562 3.45695 122.122C3.45695 56.7031 56.6994 3.45697 122.124 3.45697C187.566 3.45697 240.808 56.7031 240.808 122.122V240.808Z';\n\nexport const body = document.getElementsByTagName('body')[0];\nexport const widgetHolder = document.createElement('div');\n\nexport const bubbleHolder = document.createElement('div');\nexport const chatBubble = document.createElement('button');\nexport const closeBubble = document.createElement('button');\nexport const notificationBubble = document.createElement('span');\n\nexport const setBubbleText = bubbleText => {\n if (isExpandedView(window.$chatwoot.type)) {\n const textNode = document.getElementById('woot-widget--expanded__text');\n textNode.innerText = bubbleText;\n }\n};\n\nexport const createBubbleIcon = ({ className, path, target }) => {\n let bubbleClassName = `${className} woot-elements--${window.$chatwoot.position}`;\n const bubbleIcon = document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'svg'\n );\n bubbleIcon.setAttributeNS(null, 'id', 'woot-widget-bubble-icon');\n bubbleIcon.setAttributeNS(null, 'width', '24');\n bubbleIcon.setAttributeNS(null, 'height', '24');\n bubbleIcon.setAttributeNS(null, 'viewBox', '0 0 240 240');\n bubbleIcon.setAttributeNS(null, 'fill', 'none');\n bubbleIcon.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n const bubblePath = document.createElementNS(\n 'http://www.w3.org/2000/svg',\n 'path'\n );\n bubblePath.setAttributeNS(null, 'd', path);\n bubblePath.setAttributeNS(null, 'fill', '#FFFFFF');\n\n bubbleIcon.appendChild(bubblePath);\n target.appendChild(bubbleIcon);\n\n if (isExpandedView(window.$chatwoot.type)) {\n const textNode = document.createElement('div');\n textNode.id = 'woot-widget--expanded__text';\n textNode.innerText = '';\n target.appendChild(textNode);\n bubbleClassName += ' woot-widget--expanded';\n }\n\n target.className = bubbleClassName;\n target.title = 'Open chat window';\n return target;\n};\n\nexport const createBubbleHolder = hideMessageBubble => {\n if (hideMessageBubble) {\n addClasses(bubbleHolder, 'woot-hidden');\n }\n addClasses(bubbleHolder, 'woot--bubble-holder');\n body.appendChild(bubbleHolder);\n};\n\nexport const createNotificationBubble = () => {\n addClasses(notificationBubble, 'woot--notification');\n return notificationBubble;\n};\n\nexport const onBubbleClick = (props = {}) => {\n const { toggleValue } = props;\n const { isOpen } = window.$chatwoot;\n if (isOpen !== toggleValue) {\n const newIsOpen = toggleValue === undefined ? !isOpen : toggleValue;\n window.$chatwoot.isOpen = newIsOpen;\n\n toggleClass(chatBubble, 'woot--hide');\n toggleClass(closeBubble, 'woot--hide');\n toggleClass(widgetHolder, 'woot--hide');\n IFrameHelper.events.onBubbleToggle(newIsOpen);\n\n if (!newIsOpen) {\n chatBubble.focus();\n }\n }\n};\n\nexport const onClickChatBubble = () => {\n bubbleHolder.addEventListener('click', onBubbleClick);\n};\n\nexport const addUnreadClass = () => {\n const holderEl = document.querySelector('.woot-widget-holder');\n addClasses(holderEl, 'has-unread-view');\n};\n\nexport const removeUnreadClass = () => {\n const holderEl = document.querySelector('.woot-widget-holder');\n removeClasses(holderEl, 'has-unread-view');\n};\n","export const createEvent = ({ eventName, data = null }) => {\n let event;\n if (typeof window.CustomEvent === 'function') {\n event = new CustomEvent(eventName, { detail: data });\n } else {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(eventName, false, false, data);\n }\n return event;\n};\n\nexport const dispatchWindowEvent = ({ eventName, data }) => {\n const event = createEvent({ eventName, data });\n window.dispatchEvent(event);\n};\n","import md5 from 'md5';\nimport Cookies from 'js-cookie';\n\nconst REQUIRED_USER_KEYS = ['avatar_url', 'email', 'name'];\nconst ALLOWED_USER_ATTRIBUTES = [\n ...REQUIRED_USER_KEYS,\n 'identifier_hash',\n 'rnd',\n 'orgnr',\n 'username',\n 'phone_number',\n 'company_name',\n];\n\nexport const getUserCookieName = () => {\n const SET_USER_COOKIE_PREFIX = 'cw_user_';\n const { websiteToken: websiteIdentifier } = window.$chatwoot;\n return `${SET_USER_COOKIE_PREFIX}${websiteIdentifier}`;\n};\n\nexport const getUserString = ({ identifier = '', user }) => {\n const userStringWithSortedKeys = ALLOWED_USER_ATTRIBUTES.reduce(\n (acc, key) => `${acc}${key}${user[key] || ''}`,\n ''\n );\n return `${userStringWithSortedKeys}identifier${identifier}`;\n};\n\nexport const computeHashForUserData = (...args) => md5(getUserString(...args));\n\nexport const hasUserKeys = user =>\n REQUIRED_USER_KEYS.reduce((acc, key) => acc || !!user[key], false);\n\nexport const setCookieWithDomain = (\n name,\n value,\n { expires = 365, baseDomain = undefined } = {}\n) => {\n const cookieOptions = {\n expires,\n sameSite: 'Lax',\n domain: baseDomain,\n };\n\n Cookies.set(name, value, cookieOptions);\n};\n","import Cookies from 'js-cookie';\nimport {\n addClasses,\n loadCSS,\n removeClasses,\n onLocationChangeListener,\n} from './DOMHelpers';\nimport {\n body,\n widgetHolder,\n createBubbleHolder,\n createBubbleIcon,\n bubbleSVG,\n chatBubble,\n closeBubble,\n bubbleHolder,\n createNotificationBubble,\n onClickChatBubble,\n onBubbleClick,\n setBubbleText,\n addUnreadClass,\n removeUnreadClass,\n} from './bubbleHelpers';\nimport { isWidgetColorLighter } from 'shared/helpers/colorHelper';\nimport { dispatchWindowEvent } from 'shared/helpers/CustomEventHelper';\nimport {\n CHATWOOT_ERROR,\n CHATWOOT_ON_MESSAGE,\n CHATWOOT_READY,\n} from '../widget/constants/sdkEvents';\nimport { SET_USER_ERROR } from '../widget/constants/errorTypes';\nimport { getUserCookieName, setCookieWithDomain } from './cookieHelpers';\nimport {\n getAlertAudio,\n initOnEvents,\n} from 'shared/helpers/AudioNotificationHelper';\nimport { isFlatWidgetStyle } from './settingsHelper';\nimport { popoutChatWindow } from '../widget/helpers/popoutHelper';\nimport addHours from 'date-fns/addHours';\n\nconst updateAuthCookie = (cookieContent, baseDomain = '') =>\n setCookieWithDomain('cw_conversation', cookieContent, {\n baseDomain,\n });\n\nconst updateCampaignReadStatus = baseDomain => {\n const expireBy = addHours(new Date(), 1);\n setCookieWithDomain('cw_snooze_campaigns_till', Number(expireBy), {\n expires: expireBy,\n baseDomain,\n });\n};\n\nexport const IFrameHelper = {\n getUrl({ baseUrl, websiteToken }) {\n return `${baseUrl}/widget?website_token=${websiteToken}`;\n },\n createFrame: ({ baseUrl, websiteToken }) => {\n if (IFrameHelper.getAppFrame()) {\n return;\n }\n\n loadCSS();\n const iframe = document.createElement('iframe');\n const cwCookie = Cookies.get('cw_conversation');\n let widgetUrl = IFrameHelper.getUrl({ baseUrl, websiteToken });\n if (cwCookie) {\n widgetUrl = `${widgetUrl}&cw_conversation=${cwCookie}`;\n }\n iframe.src = widgetUrl;\n iframe.allow =\n 'camera;microphone;fullscreen;display-capture;picture-in-picture;clipboard-write;';\n iframe.id = 'chatwoot_live_chat_widget';\n iframe.style.visibility = 'hidden';\n\n let holderClassName = `woot-widget-holder woot--hide woot-elements--${window.$chatwoot.position}`;\n if (window.$chatwoot.hideMessageBubble) {\n holderClassName += ` woot-widget--without-bubble`;\n }\n if (isFlatWidgetStyle(window.$chatwoot.widgetStyle)) {\n holderClassName += ` woot-widget-holder--flat`;\n }\n\n addClasses(widgetHolder, holderClassName);\n widgetHolder.appendChild(iframe);\n body.appendChild(widgetHolder);\n IFrameHelper.initPostMessageCommunication();\n IFrameHelper.initWindowSizeListener();\n IFrameHelper.preventDefaultScroll();\n },\n getAppFrame: () => document.getElementById('chatwoot_live_chat_widget'),\n getBubbleHolder: () => document.getElementsByClassName('woot--bubble-holder'),\n sendMessage: (key, value) => {\n const element = IFrameHelper.getAppFrame();\n element.contentWindow.postMessage(\n `chatwoot-widget:${JSON.stringify({ event: key, ...value })}`,\n '*'\n );\n },\n initPostMessageCommunication: () => {\n window.onmessage = e => {\n if (\n typeof e.data !== 'string' ||\n e.data.indexOf('chatwoot-widget:') !== 0\n ) {\n return;\n }\n const message = JSON.parse(e.data.replace('chatwoot-widget:', ''));\n if (typeof IFrameHelper.events[message.event] === 'function') {\n IFrameHelper.events[message.event](message);\n }\n };\n },\n initWindowSizeListener: () => {\n window.addEventListener('resize', () => IFrameHelper.toggleCloseButton());\n },\n preventDefaultScroll: () => {\n widgetHolder.addEventListener('wheel', event => {\n const deltaY = event.deltaY;\n const contentHeight = widgetHolder.scrollHeight;\n const visibleHeight = widgetHolder.offsetHeight;\n const scrollTop = widgetHolder.scrollTop;\n\n if (\n (scrollTop === 0 && deltaY < 0) ||\n (visibleHeight + scrollTop === contentHeight && deltaY > 0)\n ) {\n event.preventDefault();\n }\n });\n },\n\n setFrameHeightToFitContent: (extraHeight, isFixedHeight) => {\n const iframe = IFrameHelper.getAppFrame();\n const updatedIframeHeight = isFixedHeight ? `${extraHeight}px` : '100%';\n\n if (iframe)\n iframe.setAttribute('style', `height: ${updatedIframeHeight} !important`);\n },\n\n setupAudioListeners: () => {\n const { baseUrl = '' } = window.$chatwoot;\n getAlertAudio(baseUrl, { type: 'widget', alertTone: 'ding' }).then(() =>\n initOnEvents.forEach(event => {\n document.removeEventListener(\n event,\n IFrameHelper.setupAudioListeners,\n false\n );\n })\n );\n },\n\n events: {\n loaded: message => {\n updateAuthCookie(message.config.authToken, window.$chatwoot.baseDomain);\n window.$chatwoot.hasLoaded = true;\n const campaignsSnoozedTill = Cookies.get('cw_snooze_campaigns_till');\n IFrameHelper.sendMessage('config-set', {\n locale: window.$chatwoot.locale,\n position: window.$chatwoot.position,\n hideMessageBubble: window.$chatwoot.hideMessageBubble,\n showPopoutButton: window.$chatwoot.showPopoutButton,\n widgetStyle: window.$chatwoot.widgetStyle,\n darkMode: window.$chatwoot.darkMode,\n campaignsSnoozedTill,\n });\n IFrameHelper.onLoad({\n widgetColor: message.config.channelConfig.widgetColor,\n });\n IFrameHelper.toggleCloseButton();\n\n if (window.$chatwoot.user) {\n IFrameHelper.sendMessage('set-user', window.$chatwoot.user);\n }\n\n window.playAudioAlert = () => {};\n\n initOnEvents.forEach(e => {\n document.addEventListener(e, IFrameHelper.setupAudioListeners, false);\n });\n\n if (!window.$chatwoot.resetTriggered) {\n dispatchWindowEvent({ eventName: CHATWOOT_READY });\n }\n },\n error: ({ errorType, data }) => {\n dispatchWindowEvent({ eventName: CHATWOOT_ERROR, data: data });\n\n if (errorType === SET_USER_ERROR) {\n Cookies.remove(getUserCookieName());\n }\n },\n onMessage({ data }) {\n dispatchWindowEvent({ eventName: CHATWOOT_ON_MESSAGE, data });\n },\n setBubbleLabel(message) {\n setBubbleText(window.$chatwoot.launcherTitle || message.label);\n },\n\n setAuthCookie({ data: { widgetAuthToken } }) {\n updateAuthCookie(widgetAuthToken, window.$chatwoot.baseDomain);\n },\n\n setCampaignReadOn() {\n updateCampaignReadStatus(window.$chatwoot.baseDomain);\n },\n\n toggleBubble: state => {\n let bubbleState = {};\n if (state === 'open') {\n bubbleState.toggleValue = true;\n } else if (state === 'close') {\n bubbleState.toggleValue = false;\n }\n\n onBubbleClick(bubbleState);\n },\n\n popoutChatWindow: ({ baseUrl, websiteToken, locale }) => {\n const cwCookie = Cookies.get('cw_conversation');\n window.$chatwoot.toggle('close');\n popoutChatWindow(baseUrl, websiteToken, locale, cwCookie);\n },\n\n closeWindow: () => {\n onBubbleClick({ toggleValue: false });\n removeUnreadClass();\n },\n\n onBubbleToggle: isOpen => {\n IFrameHelper.sendMessage('toggle-open', { isOpen });\n if (isOpen) {\n IFrameHelper.pushEvent('webwidget.triggered');\n }\n },\n onLocationChange: ({ referrerURL, referrerHost }) => {\n IFrameHelper.sendMessage('change-url', {\n referrerURL,\n referrerHost,\n });\n },\n updateIframeHeight: message => {\n const { extraHeight = 0, isFixedHeight } = message;\n\n IFrameHelper.setFrameHeightToFitContent(extraHeight, isFixedHeight);\n },\n\n setUnreadMode: () => {\n addUnreadClass();\n onBubbleClick({ toggleValue: true });\n },\n\n resetUnreadMode: () => removeUnreadClass(),\n handleNotificationDot: event => {\n if (window.$chatwoot.hideMessageBubble) {\n return;\n }\n\n const bubbleElement = document.querySelector('.woot-widget-bubble');\n if (\n event.unreadMessageCount > 0 &&\n !bubbleElement.classList.contains('unread-notification')\n ) {\n addClasses(bubbleElement, 'unread-notification');\n } else if (event.unreadMessageCount === 0) {\n removeClasses(bubbleElement, 'unread-notification');\n }\n },\n\n closeChat: () => {\n onBubbleClick({ toggleValue: false });\n },\n\n playAudio: () => {\n window.playAudioAlert();\n },\n },\n pushEvent: eventName => {\n IFrameHelper.sendMessage('push-event', { eventName });\n },\n\n onLoad: ({ widgetColor }) => {\n const iframe = IFrameHelper.getAppFrame();\n iframe.style.visibility = '';\n iframe.setAttribute('id', `chatwoot_live_chat_widget`);\n\n if (IFrameHelper.getBubbleHolder().length) {\n return;\n }\n createBubbleHolder(window.$chatwoot.hideMessageBubble);\n onLocationChangeListener();\n\n let className = 'woot-widget-bubble';\n let closeBtnClassName = `woot-elements--${window.$chatwoot.position} woot-widget-bubble woot--close woot--hide`;\n\n if (isFlatWidgetStyle(window.$chatwoot.widgetStyle)) {\n className += ' woot-widget-bubble--flat';\n closeBtnClassName += ' woot-widget-bubble--flat';\n }\n\n if (isWidgetColorLighter(widgetColor)) {\n className += ' woot-widget-bubble-color--lighter';\n closeBtnClassName += ' woot-widget-bubble-color--lighter';\n }\n\n const chatIcon = createBubbleIcon({\n className,\n path: bubbleSVG,\n target: chatBubble,\n });\n\n addClasses(closeBubble, closeBtnClassName);\n\n chatIcon.style.background = widgetColor;\n closeBubble.style.background = widgetColor;\n\n bubbleHolder.appendChild(chatIcon);\n bubbleHolder.appendChild(closeBubble);\n bubbleHolder.appendChild(createNotificationBubble());\n onClickChatBubble();\n },\n toggleCloseButton: () => {\n let isMobile = false;\n if (window.matchMedia('(max-width: 668px)').matches) {\n isMobile = true;\n }\n IFrameHelper.sendMessage('toggle-close-button', { isMobile });\n },\n};\n","export const CHATWOOT_ERROR = 'chatwoot:error';\nexport const CHATWOOT_ON_MESSAGE = 'chatwoot:on-message';\nexport const CHATWOOT_READY = 'chatwoot:ready';\n","import Cookies from 'js-cookie';\nimport { IFrameHelper } from '../sdk/IFrameHelper';\nimport {\n getBubbleView,\n getDarkMode,\n getWidgetStyle,\n} from '../sdk/settingsHelper';\nimport {\n computeHashForUserData,\n getUserCookieName,\n hasUserKeys,\n} from '../sdk/cookieHelpers';\nimport { addClasses, removeClasses } from '../sdk/DOMHelpers';\nimport { setCookieWithDomain } from '../sdk/cookieHelpers';\nimport { SDK_SET_BUBBLE_VISIBILITY } from 'shared/constants/sharedFrameEvents';\nconst runSDK = ({ baseUrl, websiteToken }) => {\n if (window.$chatwoot) {\n return;\n }\n\n const chatwootSettings = window.chatwootSettings || {};\n let locale = chatwootSettings.locale;\n let baseDomain = chatwootSettings.baseDomain;\n\n if (chatwootSettings.useBrowserLanguage) {\n locale = window.navigator.language.replace('-', '_');\n }\n\n window.$chatwoot = {\n baseUrl,\n baseDomain,\n hasLoaded: false,\n hideMessageBubble: chatwootSettings.hideMessageBubble || false,\n isOpen: false,\n position: chatwootSettings.position === 'left' ? 'left' : 'right',\n websiteToken,\n locale,\n useBrowserLanguage: chatwootSettings.useBrowserLanguage || false,\n type: getBubbleView(chatwootSettings.type),\n launcherTitle: chatwootSettings.launcherTitle || '',\n showPopoutButton: chatwootSettings.showPopoutButton || false,\n widgetStyle: getWidgetStyle(chatwootSettings.widgetStyle) || 'standard',\n resetTriggered: false,\n darkMode: getDarkMode(chatwootSettings.darkMode),\n\n toggle(state) {\n IFrameHelper.events.toggleBubble(state);\n },\n\n toggleBubbleVisibility(visibility) {\n let widgetElm = document.querySelector('.woot--bubble-holder');\n let widgetHolder = document.querySelector('.woot-widget-holder');\n if (visibility === 'hide') {\n addClasses(widgetHolder, 'woot-widget--without-bubble');\n addClasses(widgetElm, 'woot-hidden');\n window.$chatwoot.hideMessageBubble = true;\n } else if (visibility === 'show') {\n removeClasses(widgetElm, 'woot-hidden');\n removeClasses(widgetHolder, 'woot-widget--without-bubble');\n window.$chatwoot.hideMessageBubble = false;\n }\n IFrameHelper.sendMessage(SDK_SET_BUBBLE_VISIBILITY, {\n hideMessageBubble: window.$chatwoot.hideMessageBubble,\n });\n },\n\n popoutChatWindow() {\n IFrameHelper.events.popoutChatWindow({\n baseUrl: window.$chatwoot.baseUrl,\n websiteToken: window.$chatwoot.websiteToken,\n locale,\n });\n },\n\n setUser(identifier, user) {\n if (typeof identifier !== 'string' && typeof identifier !== 'number') {\n throw new Error('Identifier should be a string or a number');\n }\n\n if (!hasUserKeys(user)) {\n throw new Error(\n 'User object should have one of the keys [avatar_url, email, name]'\n );\n }\n\n const userCookieName = getUserCookieName();\n const existingCookieValue = Cookies.get(userCookieName);\n const hashToBeStored = computeHashForUserData({ identifier, user });\n if (hashToBeStored === existingCookieValue) {\n return;\n }\n\n window.$chatwoot.identifier = identifier;\n window.$chatwoot.user = user;\n IFrameHelper.sendMessage('set-user', { identifier, user });\n\n setCookieWithDomain(userCookieName, hashToBeStored, {\n baseDomain,\n });\n },\n\n setCustomAttributes(customAttributes = {}) {\n if (!customAttributes || !Object.keys(customAttributes).length) {\n throw new Error('Custom attributes should have atleast one key');\n } else {\n IFrameHelper.sendMessage('set-custom-attributes', { customAttributes });\n }\n },\n\n deleteCustomAttribute(customAttribute = '') {\n if (!customAttribute) {\n throw new Error('Custom attribute is required');\n } else {\n IFrameHelper.sendMessage('delete-custom-attribute', {\n customAttribute,\n });\n }\n },\n\n setConversationCustomAttributes(customAttributes = {}) {\n if (!customAttributes || !Object.keys(customAttributes).length) {\n throw new Error('Custom attributes should have atleast one key');\n } else {\n IFrameHelper.sendMessage('set-conversation-custom-attributes', {\n customAttributes,\n });\n }\n },\n\n deleteConversationCustomAttribute(customAttribute = '') {\n if (!customAttribute) {\n throw new Error('Custom attribute is required');\n } else {\n IFrameHelper.sendMessage('delete-conversation-custom-attribute', {\n customAttribute,\n });\n }\n },\n\n setLabel(label = '') {\n IFrameHelper.sendMessage('set-label', { label });\n },\n\n removeLabel(label = '') {\n IFrameHelper.sendMessage('remove-label', { label });\n },\n\n setLocale(localeToBeUsed = 'en') {\n IFrameHelper.sendMessage('set-locale', { locale: localeToBeUsed });\n },\n\n setColorScheme(darkMode = 'light') {\n IFrameHelper.sendMessage('set-color-scheme', {\n darkMode: getDarkMode(darkMode),\n });\n },\n\n reset() {\n if (window.$chatwoot.isOpen) {\n IFrameHelper.events.toggleBubble();\n }\n\n Cookies.remove('cw_conversation');\n Cookies.remove(getUserCookieName());\n\n const iframe = IFrameHelper.getAppFrame();\n iframe.src = IFrameHelper.getUrl({\n baseUrl: window.$chatwoot.baseUrl,\n websiteToken: window.$chatwoot.websiteToken,\n });\n\n window.$chatwoot.resetTriggered = true;\n },\n };\n\n IFrameHelper.createFrame({\n baseUrl,\n websiteToken,\n });\n};\n\nwindow.chatwootSDK = {\n run: runSDK,\n};\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;\n(function (factory) {\n var registeredInModuleLoader;\n if (typeof define === 'function' && define.amd) {\n define(factory);\n registeredInModuleLoader = true;\n }\n if (typeof exports === 'object') {\n module.exports = factory();\n registeredInModuleLoader = true;\n }\n if (!registeredInModuleLoader) {\n var OldCookies = window.Cookies;\n var api = window.Cookies = factory();\n api.noConflict = function () {\n window.Cookies = OldCookies;\n return api;\n };\n }\n})(function () {\n function extend() {\n var i = 0;\n var result = {};\n for (; i < arguments.length; i++) {\n var attributes = arguments[i];\n for (var key in attributes) {\n result[key] = attributes[key];\n }\n }\n return result;\n }\n function decode(s) {\n return s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n }\n function init(converter) {\n function api() {}\n function set(key, value, attributes) {\n if (typeof document === 'undefined') {\n return;\n }\n attributes = extend({\n path: '/'\n }, api.defaults, attributes);\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n }\n\n // We're using \"expires\" because \"max-age\" is not supported by IE\n attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n try {\n var result = JSON.stringify(value);\n if (/^[\\{\\[]/.test(result)) {\n value = result;\n }\n } catch (e) {}\n value = converter.write ? converter.write(value, key) : encodeURIComponent(String(value)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n key = encodeURIComponent(String(key)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent).replace(/[\\(\\)]/g, escape);\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue;\n }\n stringifiedAttributes += '; ' + attributeName;\n if (attributes[attributeName] === true) {\n continue;\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n return document.cookie = key + '=' + value + stringifiedAttributes;\n }\n function get(key, json) {\n if (typeof document === 'undefined') {\n return;\n }\n var jar = {};\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var i = 0;\n for (; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var cookie = parts.slice(1).join('=');\n if (!json && cookie.charAt(0) === '\"') {\n cookie = cookie.slice(1, -1);\n }\n try {\n var name = decode(parts[0]);\n cookie = (converter.read || converter)(cookie, name) || decode(cookie);\n if (json) {\n try {\n cookie = JSON.parse(cookie);\n } catch (e) {}\n }\n jar[name] = cookie;\n if (key === name) {\n break;\n }\n } catch (e) {}\n }\n return key ? jar[key] : jar;\n }\n api.set = set;\n api.get = function (key) {\n return get(key, false /* read as raw */);\n };\n\n api.getJSON = function (key) {\n return get(key, true /* read as json */);\n };\n\n api.remove = function (key, attributes) {\n set(key, '', extend(attributes, {\n expires: -1\n }));\n };\n api.defaults = {};\n api.withConverter = init;\n return api;\n }\n return init(function () {});\n});","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}"],"sourceRoot":""}