{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/widget.js","webpack:///../src/index.ts"],"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","log","window","HomainsChat","_","widget","iframe","bodyStyle","scrollPosition","widget_height","all","config","hookQueue","ready","smallScreen","validCallbacks","callbacks","Map","on","type","handler","handlers","push","set","off","splice","indexOf","emit","evt","slice","map","registerCallback","eventName","fn","emitCallback","data","callHook","action","params","src","args","contentWindow","postMessage","updateWidgetStyle","isOpened","document","documentElement","scrollTop","body","style","cssText","left","height","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","overwrite","setTheme","theme","setDepartment","department","setGuestToken","token","setGuestName","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","matches","mediaQueryList","matchMedia","addListener","createWidget","addEventListener","msg","undefined","concat","setInterval","initRocket","console","warn","queue","livechat","initialize","method","Array","isArray","clearDepartment","maximizeWidget","minimizeWidget","onChatMaximized","onChatMinimized","onChatStarted","onChatEnded","onPrechatFormSubmit","onOfflineFormSubmit","onWidgetShown","onWidgetHidden","onAssignAgent","onAgentStatusChange","onQueuePositionChange","onServiceOffline"],"mappings":"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","file":"homains-livechat.min.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 = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","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;\nconst FULLSCREEN_DOCUMENT_CONFIG = 'overflow: hidden; height: 100%; width: 100%;';\n\n\nwindow.HomainsChat = window.HomainsChat || { _: [] };\nconst config = {};\nlet widget;\nlet iframe;\nlet hookQueue = [];\nlet ready = false;\nlet smallScreen = false;\nlet bodyStyle;\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: 'rocketchat',\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\tbodyStyle = document.body.style.cssText;\n\t\tdocument.body.style.cssText += FULLSCREEN_DOCUMENT_CONFIG;\n\t} else {\n\t\tdocument.body.style.cssText = bodyStyle;\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 = 'rocketchat-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 = 'rocketchat-container';\n\tcontainer.style.width = '100%';\n\tcontainer.style.height = '100%';\n\n\tiframe = document.createElement('iframe');\n\tiframe.id = 'rocketchat-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.style.cssText = bodyStyle;\n\t},\n\n\tsetFullScreenDocumentMobile() {\n\t\tdocument.body.style.cssText += smallScreen && FULLSCREEN_DOCUMENT_CONFIG;\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 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 '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 === 'rocketchat') {\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.HomainsChat.url !== 'undefined') {\n\tinit(window.HomainsChat.url);\n}\n\nconst queue = window.HomainsChat._;\n\nwindow.HomainsChat._.push = function(c) {\n\tc.call(window.HomainsChat.livechat);\n};\nwindow.HomainsChat = window.HomainsChat._.push;\n\n// exports\nwindow.HomainsChat.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\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.HomainsChat.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"],"sourceRoot":""}