{"version":3,"file":"uhuulivechat.min.js","mappings":"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","sources":["webpack://@rocket.chat/livechat/./src/widget.js","webpack://@rocket.chat/livechat/../src/index.ts"],"sourcesContent":["import mitt from 'mitt';\n\n\nconst log = process.env.NODE_ENV === 'development'\n\t? (...args) => window.console.log('%cwidget%c', 'color: red', 'color: initial', ...args)\n\t: () => {};\n\n\nconst WIDGET_OPEN_WIDTH = 365;\nconst WIDGET_OPEN_HEIGHT = 525;\nconst WIDGET_MINIMIZED_WIDTH = 54;\nconst WIDGET_MINIMIZED_HEIGHT = 54;\nconst WIDGET_MARGIN = 16;\n\n\nwindow.UhuuChat = window.UhuuChat || { _: [] };\nconst config = {};\nlet widget;\nlet iframe;\nlet hookQueue = [];\nlet ready = false;\nlet smallScreen = false;\nlet scrollPosition;\nlet widget_height;\n\nexport const validCallbacks = [\n\t'chat-maximized',\n\t'chat-minimized',\n\t'chat-started',\n\t'chat-ended',\n\t'pre-chat-form-submit',\n\t'offline-form-submit',\n\t'show-widget',\n\t'hide-widget',\n\t'assign-agent',\n\t'agent-status-change',\n\t'queue-position-change',\n\t'no-agent-online',\n];\n\nconst callbacks = mitt();\n\nfunction registerCallback(eventName, fn) {\n\tif (validCallbacks.indexOf(eventName) === -1) {\n\t\treturn false;\n\t}\n\n\treturn callbacks.on(eventName, fn);\n}\n\nfunction emitCallback(eventName, data) {\n\tif (typeof data !== 'undefined') {\n\t\tcallbacks.emit(eventName, data);\n\t} else {\n\t\tcallbacks.emit(eventName);\n\t}\n}\n\n// hooks\nfunction callHook(action, params) {\n\tif (!ready) {\n\t\treturn hookQueue.push([action, params]);\n\t}\n\tconst data = {\n\t\tsrc: 'uhuuchat',\n\t\tfn: action,\n\t\targs: params,\n\t};\n\tiframe.contentWindow.postMessage(data, '*');\n}\n\nconst updateWidgetStyle = (isOpened) => {\n\tif (smallScreen && isOpened) {\n\t\tscrollPosition = document.documentElement.scrollTop;\n\t\tdocument.body.classList.add('rc-livechat-mobile-full-screen');\n\t} else {\n\t\tdocument.body.classList.remove('rc-livechat-mobile-full-screen');\n\t\tif (smallScreen) {\n\t\t\tdocument.documentElement.scrollTop = scrollPosition;\n\t\t}\n\t}\n\n\tif (isOpened) {\n\t\twidget.style.left = smallScreen ? '0' : 'auto';\n\n\t\t/**\n\t\t * If we use widget.style.height = smallScreen ? '100vh' : ...\n\t\t * In above case some browser's viewport height is not rendered correctly\n\t\t * so, as 100vh will resolve to 100% of the current viewport height,\n\t\t * so fixed it to 100% avoiding problem for some browsers. Similar resolution\n\t\t * for widget.style.width\n\t\t */\n\n\t\twidget.style.height = smallScreen ? '100%' : `${ WIDGET_MARGIN + widget_height + WIDGET_MARGIN + WIDGET_MINIMIZED_HEIGHT }px`;\n\t\twidget.style.width = smallScreen ? '100%' : `${ WIDGET_MARGIN + WIDGET_OPEN_WIDTH + WIDGET_MARGIN }px`;\n\t} else {\n\t\twidget.style.left = 'auto';\n\t\twidget.style.width = `${ WIDGET_MARGIN + WIDGET_MINIMIZED_WIDTH + WIDGET_MARGIN }px`;\n\t\twidget.style.height = `${ WIDGET_MARGIN + WIDGET_MINIMIZED_HEIGHT + WIDGET_MARGIN }px`;\n\t}\n};\n\nconst createWidget = (url) => {\n\twidget = document.createElement('div');\n\twidget.className = 'uhuuchat-widget';\n\twidget.style.position = 'fixed';\n\twidget.style.width = `${ WIDGET_MARGIN + WIDGET_MINIMIZED_WIDTH + WIDGET_MARGIN }px`;\n\twidget.style.height = `${ WIDGET_MARGIN + WIDGET_MINIMIZED_HEIGHT + WIDGET_MARGIN }px`;\n\twidget.style.maxHeight = '100vh';\n\twidget.style.bottom = '0';\n\twidget.style.right = '0';\n\twidget.style.zIndex = '12345';\n\twidget.dataset.state = 'closed';\n\n\tconst container = document.createElement('div');\n\tcontainer.className = 'uhuuchat-container';\n\tcontainer.style.width = '100%';\n\tcontainer.style.height = '100%';\n\n\tiframe = document.createElement('iframe');\n\tiframe.id = 'uhuuchat-iframe';\n\tiframe.allowTransparency = 'true';\n\tiframe.src = url;\n\tiframe.style.width = '100%';\n\tiframe.style.height = '100%';\n\tiframe.style.border = 'none';\n\tiframe.style.backgroundColor = 'transparent';\n\n\tcontainer.appendChild(iframe);\n\twidget.appendChild(container);\n\tdocument.body.appendChild(widget);\n\n\tconst handleMediaQueryTest = ({ matches }) => {\n\t\tif (!widget) {\n\t\t\treturn;\n\t\t}\n\n\t\tsmallScreen = matches;\n\t\tupdateWidgetStyle(widget.dataset.state === 'opened');\n\t\tcallHook('setExpanded', smallScreen);\n\t};\n\n\tconst mediaQueryList = window.matchMedia('screen and (max-device-width: 480px)');\n\tmediaQueryList.addListener(handleMediaQueryTest);\n\thandleMediaQueryTest(mediaQueryList);\n};\n\nconst openWidget = () => {\n\tif (widget.dataset.state === 'opened') {\n\t\treturn;\n\t}\n\n\twidget_height = WIDGET_OPEN_HEIGHT;\n\tupdateWidgetStyle(true);\n\twidget.dataset.state = 'opened';\n\tiframe.focus();\n\temitCallback('chat-maximized');\n};\n\nconst resizeWidget = (height) => {\n\twidget_height = height;\n\tupdateWidgetStyle(true);\n\twidget.dataset.state = 'triggered';\n};\n\nfunction closeWidget() {\n\tif (widget.dataset.state === 'closed') {\n\t\treturn;\n\t}\n\n\tupdateWidgetStyle(false);\n\twidget.dataset.state = 'closed';\n\temitCallback('chat-minimized');\n}\n\nconst api = {\n\tpopup: null,\n\n\tready() {\n\t\tready = true;\n\t\tif (hookQueue.length > 0) {\n\t\t\thookQueue.forEach(function(hookParams) {\n\t\t\t\tcallHook.apply(this, hookParams);\n\t\t\t});\n\t\t\thookQueue = [];\n\t\t}\n\t},\n\n\tminimizeWindow() {\n\t\tcloseWidget();\n\t},\n\n\trestoreWindow() {\n\t\tif (api.popup && api.popup.closed !== true) {\n\t\t\tapi.popup.close();\n\t\t\tapi.popup = null;\n\t\t}\n\t\topenWidget();\n\t},\n\n\topenPopout() {\n\t\tcloseWidget();\n\t\tapi.popup = window.open(`${ config.url }${ config.url.lastIndexOf('?') > -1 ? '&' : '?' }mode=popout`,\n\t\t\t'livechat-popout', `width=${ WIDGET_OPEN_WIDTH }, height=${ widget_height }, toolbars=no`);\n\t\tapi.popup.focus();\n\t},\n\n\topenWidget() {\n\t\topenWidget();\n\t},\n\n\tresizeWidget(height) {\n\t\tresizeWidget(height);\n\t},\n\n\tremoveWidget() {\n\t\tdocument.body.removeChild(widget);\n\t},\n\n\tcallback(eventName, data) {\n\t\temitCallback(eventName, data);\n\t},\n\n\tshowWidget() {\n\t\tiframe.style.display = 'initial';\n\t\temitCallback('show-widget');\n\t},\n\n\thideWidget() {\n\t\tiframe.style.display = 'none';\n\t\temitCallback('hide-widget');\n\t},\n\n\tresetDocumentStyle() {\n\t\tdocument.body.classList.remove('rc-livechat-mobile-full-screen');\n\t},\n\n\tsetFullScreenDocumentMobile() {\n\t\tsmallScreen && document.body.classList.add('rc-livechat-mobile-full-screen');\n\t},\n};\n\nfunction pageVisited(change) {\n\tcallHook('pageVisited', {\n\t\tchange,\n\t\tlocation: JSON.parse(JSON.stringify(document.location)),\n\t\ttitle: document.title,\n\t});\n}\n\nfunction setCustomField(key, value, overwrite) {\n\tif (typeof overwrite === 'undefined') {\n\t\toverwrite = true;\n\t}\n\tcallHook('setCustomField', [key, value, overwrite]);\n}\n\nfunction setTheme(theme) {\n\tcallHook('setTheme', theme);\n}\n\nfunction setDepartment(department) {\n\tcallHook('setDepartment', department);\n}\n\nfunction setBusinessUnit(businessUnit) {\n\tcallHook('setBusinessUnit', businessUnit);\n}\n\nfunction clearBusinessUnit() {\n\tcallHook('clearBusinessUnit');\n}\n\nfunction setGuestToken(token) {\n\tcallHook('setGuestToken', token);\n}\n\nfunction setGuestName(name) {\n\tcallHook('setGuestName', name);\n}\n\nfunction setGuestEmail(email) {\n\tcallHook('setGuestEmail', email);\n}\n\nfunction registerGuest(guest) {\n\tcallHook('registerGuest', guest);\n}\n\nfunction clearDepartment() {\n\tcallHook('clearDepartment');\n}\n\nfunction setAgent(agent) {\n\tcallHook('setAgent', agent);\n}\n\nfunction setLanguage(language) {\n\tcallHook('setLanguage', language);\n}\n\nfunction showWidget() {\n\tcallHook('showWidget');\n}\n\nfunction hideWidget() {\n\tcallHook('hideWidget');\n}\n\nfunction maximizeWidget() {\n\tcallHook('maximizeWidget');\n}\n\nfunction minimizeWidget() {\n\tcallHook('minimizeWidget');\n}\n\nfunction initialize(params) {\n\tfor (const method in params) {\n\t\tif (!params.hasOwnProperty(method)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tswitch (method) {\n\t\t\tcase 'customField':\n\t\t\t\tconst { key, value, overwrite } = params[method];\n\t\t\t\tsetCustomField(key, value, overwrite);\n\t\t\t\tcontinue;\n\t\t\tcase 'setCustomFields':\n\t\t\t\tif (!Array.isArray(params[method])) {\n\t\t\t\t\tconsole.log('Error: Invalid parameters. Value must be an array of objects');\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tparams[method].forEach((data) => {\n\t\t\t\t\tconst { key, value, overwrite } = data;\n\t\t\t\t\tsetCustomField(key, value, overwrite);\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\tcase 'theme':\n\t\t\t\tsetTheme(params[method]);\n\t\t\t\tcontinue;\n\t\t\tcase 'department':\n\t\t\t\tsetDepartment(params[method]);\n\t\t\t\tcontinue;\n\t\t\tcase 'businessUnit': {\n\t\t\t\tsetBusinessUnit(params[method]);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcase 'guestToken':\n\t\t\t\tsetGuestToken(params[method]);\n\t\t\t\tcontinue;\n\t\t\tcase 'guestName':\n\t\t\t\tsetGuestName(params[method]);\n\t\t\t\tcontinue;\n\t\t\tcase 'guestEmail':\n\t\t\t\tsetGuestEmail(params[method]);\n\t\t\t\tcontinue;\n\t\t\tcase 'registerGuest':\n\t\t\t\tregisterGuest(params[method]);\n\t\t\t\tcontinue;\n\t\t\tcase 'language':\n\t\t\t\tsetLanguage(params[method]);\n\t\t\t\tcontinue;\n\t\t\tcase 'agent':\n\t\t\t\tsetAgent(params[method]);\n\t\t\t\tcontinue;\n\t\t\tdefault:\n\t\t\t\tcontinue;\n\t\t}\n\t}\n}\n\nconst currentPage = {\n\thref: null,\n\ttitle: null,\n};\n\nconst attachMessageListener = () => {\n\twindow.addEventListener('message', (msg) => {\n\t\tif (typeof msg.data === 'object' && msg.data.src !== undefined && msg.data.src === 'uhuuchat') {\n\t\t\tif (api[msg.data.fn] !== undefined && typeof api[msg.data.fn] === 'function') {\n\t\t\t\tconst args = [].concat(msg.data.args || []);\n\t\t\t\tlog(`api.${ msg.data.fn }`, ...args);\n\t\t\t\tapi[msg.data.fn].apply(null, args);\n\t\t\t}\n\t\t}\n\t}, false);\n};\n\nconst trackNavigation = () => {\n\tsetInterval(() => {\n\t\tif (document.location.href !== currentPage.href) {\n\t\t\tpageVisited('url');\n\t\t\tcurrentPage.href = document.location.href;\n\t\t}\n\n\t\tif (document.title !== currentPage.title) {\n\t\t\tpageVisited('title');\n\t\t\tcurrentPage.title = document.title;\n\t\t}\n\t}, 800);\n};\n\nconst init = (url) => {\n\tif (!url) {\n\t\treturn;\n\t}\n\n\tconfig.url = url;\n\n\tcreateWidget(url);\n\tattachMessageListener();\n\ttrackNavigation();\n};\n\nif (typeof window.initRocket !== 'undefined') {\n\tconsole.warn('initRocket is now deprecated. Please update the livechat code.');\n\tinit(window.initRocket[0]);\n}\n\nif (typeof window.UhuuChat.url !== 'undefined') {\n\tinit(window.UhuuChat.url);\n}\n\nconst queue = window.UhuuChat._;\n\nwindow.UhuuChat._.push = function(c) {\n\tc.call(window.UhuuChat.livechat);\n};\nwindow.UhuuChat = window.UhuuChat._.push;\n\n// exports\nwindow.UhuuChat.livechat = {\n\t// methods\n\tpageVisited,\n\tsetCustomField,\n\tinitialize,\n\tsetTheme,\n\tsetDepartment,\n\tclearDepartment,\n\tsetGuestToken,\n\tsetGuestName,\n\tsetGuestEmail,\n\tsetAgent,\n\tregisterGuest,\n\tsetLanguage,\n\tshowWidget,\n\thideWidget,\n\tmaximizeWidget,\n\tminimizeWidget,\n\tsetBusinessUnit,\n\tclearBusinessUnit,\n\n\t// callbacks\n\tonChatMaximized(fn) { registerCallback('chat-maximized', fn); },\n\tonChatMinimized(fn) { registerCallback('chat-minimized', fn); },\n\tonChatStarted(fn) { registerCallback('chat-started', fn); },\n\tonChatEnded(fn) { registerCallback('chat-ended', fn); },\n\tonPrechatFormSubmit(fn) { registerCallback('pre-chat-form-submit', fn); },\n\tonOfflineFormSubmit(fn) { registerCallback('offline-form-submit', fn); },\n\tonWidgetShown(fn) { registerCallback('show-widget', fn); },\n\tonWidgetHidden(fn) { registerCallback('hide-widget', fn); },\n\tonAssignAgent(fn) { registerCallback('assign-agent', fn); },\n\tonAgentStatusChange(fn) { registerCallback('agent-status-change', fn); },\n\tonQueuePositionChange(fn) { registerCallback('queue-position-change', fn); },\n\tonServiceOffline(fn) { registerCallback('no-agent-online', fn); },\n};\n\n// proccess queue\nqueue.forEach((c) => {\n\tc.call(window.UhuuChat.livechat);\n});\n","export type EventType = string | symbol;\n\n// An event handler can take an optional event argument\n// and should not return a value\nexport type Handler = (event?: T) => void;\nexport type WildcardHandler = (type: EventType, event?: any) => void;\n\n// An array of all currently registered event handlers for a type\nexport type EventHandlerList = Array;\nexport type WildCardEventHandlerList = Array;\n\n// A map of event types and their corresponding event handlers.\nexport type EventHandlerMap = Map;\n\nexport interface Emitter {\n\tall: EventHandlerMap;\n\n\ton(type: EventType, handler: Handler): void;\n\ton(type: '*', handler: WildcardHandler): void;\n\n\toff(type: EventType, handler: Handler): void;\n\toff(type: '*', handler: WildcardHandler): void;\n\n\temit(type: EventType, event?: T): void;\n\temit(type: '*', event?: any): void;\n}\n\n/**\n * Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nexport default function mitt(all?: EventHandlerMap): Emitter {\n\tall = all || new Map();\n\n\treturn {\n\n\t\t/**\n\t\t * A Map of event names to registered handler functions.\n\t\t */\n\t\tall,\n\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t * @param {string|symbol} type Type of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton(type: EventType, handler: Handler) {\n\t\t\tconst handlers = all.get(type);\n\t\t\tconst added = handlers && handlers.push(handler);\n\t\t\tif (!added) {\n\t\t\t\tall.set(type, [handler]);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t * @param {string|symbol} type Type of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff(type: EventType, handler: Handler) {\n\t\t\tconst handlers = all.get(type);\n\t\t\tif (handlers) {\n\t\t\t\thandlers.splice(handlers.indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * Note: Manually firing \"*\" handlers is not supported.\n\t\t *\n\t\t * @param {string|symbol} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit(type: EventType, evt: T) {\n\t\t\t((all.get(type) || []) as EventHandlerList).slice().map((handler) => { handler(evt); });\n\t\t\t((all.get('*') || []) as WildCardEventHandlerList).slice().map((handler) => { handler(type, evt); });\n\t\t}\n\t};\n}\n"],"names":["log","window","UhuuChat","_","widget","iframe","scrollPosition","widget_height","n","config","hookQueue","ready","smallScreen","validCallbacks","callbacks","Map","t","e","i","get","push","set","slice","map","registerCallback","eventName","fn","indexOf","emitCallback","data","callHook","action","params","src","args","contentWindow","postMessage","updateWidgetStyle","isOpened","document","documentElement","scrollTop","body","classList","add","remove","style","left","height","concat","width","WIDGET_MARGIN","openWidget","dataset","state","focus","closeWidget","api","popup","length","forEach","hookParams","apply","this","minimizeWindow","restoreWindow","closed","close","openPopout","open","url","lastIndexOf","resizeWidget","removeWidget","removeChild","callback","showWidget","display","hideWidget","resetDocumentStyle","setFullScreenDocumentMobile","pageVisited","change","location","JSON","parse","stringify","title","setCustomField","key","value","overwrite","setTheme","theme","setDepartment","department","setBusinessUnit","businessUnit","setGuestToken","token","setGuestName","name","setGuestEmail","email","registerGuest","guest","setAgent","agent","setLanguage","language","currentPage","href","init","createElement","className","position","maxHeight","bottom","right","zIndex","container","id","allowTransparency","border","backgroundColor","appendChild","handleMediaQueryTest","_ref","matches","mediaQueryList","matchMedia","addListener","createWidget","addEventListener","msg","_typeof","undefined","setInterval","initRocket","console","warn","queue","c","call","livechat","initialize","method","hasOwnProperty","_params$method","Array","isArray","clearDepartment","maximizeWidget","minimizeWidget","clearBusinessUnit","onChatMaximized","onChatMinimized","onChatStarted","onChatEnded","onPrechatFormSubmit","onOfflineFormSubmit","onWidgetShown","onWidgetHidden","onAssignAgent","onAgentStatusChange","onQueuePositionChange","onServiceOffline"],"sourceRoot":""}