{"version":3,"file":"tabInvitation.chunk.744f95598f5a7d1689e0.js","mappings":"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","sources":["webpack://apexchatwidgets/./widgets/tab/TabInvitation.js","webpack://apexchatwidgets/./widgets/core/hooks/setChatTabStyles.js","webpack://apexchatwidgets/./widgets/core/hooks/addClass.js","webpack://apexchatwidgets/./widgets/core/hooks/removeClass.js","webpack://apexchatwidgets/./widgets/core/hooks/hasClass.js","webpack://apexchatwidgets/./widgets/core/positioners/Positioner.js","webpack://apexchatwidgets/./widgets/core/hooks/replaceClass.js","webpack://apexchatwidgets/./widgets/templates/invitations/chatTab/chattab.ejs","webpack://apexchatwidgets/./widgets/core/positioners/TabPositioner.js","webpack://apexchatwidgets/./widgets/core/hooks/getStyle.js","webpack://apexchatwidgets/./widgets/core/WidgetView.js"],"sourcesContent":["/**\r\n * Tab invitation loaded inside its own iframe\r\n */\r\nimport chatTabTemplate from '../templates/invitations/chatTab/chattab.ejs';\r\nimport addStyleTextInIframe from '../core/hooks/addStyleTextInIframe';\r\nimport ChatMode from '../core/hooks/ChatMode';\r\nimport getStyle from '../core/hooks/getStyle';\r\nimport { BaseWidget } from '../core/BaseWidget';\r\nimport { ChatType } from '../core/enums/Enum';\r\nimport WidgetTypes from '../core/enums/WidgetTypes';\r\nimport TabPositioner from '../core/positioners/TabPositioner';\r\nimport WidgetView from '../core/WidgetView';\r\nimport setChatTabStyles from '../core/hooks/setChatTabStyles';\r\nimport RunAsSoonAs from '../core/hooks/RunAsSoonAs';\r\nimport observe from '../core/hooks/observe';\r\nimport WidgetStates from '../core/hooks/WidgetStates';\r\nimport showElement from '../core/hooks/showElement';\r\nimport hideElement from '../core/hooks/hideElement';\r\nimport replaceClass from '../core/hooks/replaceClass';\r\nimport addClass from '../core/hooks/addClass';\r\nimport logIt from '../../logIt';\r\n\r\nexport default class TabInvitation extends BaseWidget {\r\n constructor(options) {\r\n if (!options.chatTab) {\r\n console.log('tab not enabled');\r\n return;\r\n }\r\n // options.containerId = 'apexchat_static_tab_text';\r\n super(Object.assign(options, { widget: WidgetTypes.Tab, styleName: 'tab' }));\r\n this.positioner = new TabPositioner(this.options, this.DOM);\r\n this.ready();\r\n }\r\n\r\n ready() {\r\n super.ready();\r\n this.create();\r\n }\r\n\r\n create() {\r\n super.create();\r\n const me = this;\r\n const polyfills = [];\r\n const handleMaximizedFont = function () {\r\n const re = new RegExp('\"', 'g');\r\n this.model.fontFamily = this.model.fontFamily.replace(re, \"'\");\r\n };\r\n me.options.chatTab.style = `top: 0; background-color:${me.options.chatTab.backgroundColor} `;\r\n const handleWidgetFont = function () { };\r\n polyfills.push(handleMaximizedFont);\r\n this.view = new WidgetView({\r\n dom: this.DOM,\r\n identifier: WidgetTypes.Tab,\r\n templates: [\r\n {\r\n key: WidgetStates.ShownMaximized,\r\n tpl: chatTabTemplate(me.options.chatTab),\r\n model: me.options.chatTab,\r\n polyfills,\r\n afterRender(tpl) {\r\n // JIRA_2872 - START - Seperated ChatTab/ChatBar CSS Files (previously css content was written inside .htm file)\r\n // const bindingDynamicStyles = parseTemplate(\r\n // me.options.chatTab.chatTabCSS,\r\n // me.options.chatTab\r\n // );\r\n setChatTabStyles(me.DOM, me.options.chatTab);\r\n // addStyleTextInIframe(\r\n // bindingDynamicStyles,\r\n // 'apexchat_chat_tab_css',\r\n // undefined,\r\n // me.DOM\r\n // );\r\n addStyleTextInIframe(\r\n me.options.invitationWidgetStyle,\r\n 'apexchat_custom_fontAwesome',\r\n undefined,\r\n me.DOM\r\n );\r\n // JIRA_2872 - END\r\n // JIRA_3160 - START\r\n if (\r\n me.options.chatTab.chatTabAnimate == 'ColorChange' &&\r\n me.options.chatTab.chatTabTimer != 0\r\n ) {\r\n let shown = true;\r\n function chatTabColorChange() {\r\n if (shown) {\r\n ApexChat.animate(\r\n me.DOM.getElementById('apexchat_static_tab_text'),\r\n `background-color: ${me.options.chatTab.backgroundAnimateColor}`,\r\n {\r\n duration: 1000\r\n }\r\n );\r\n shown = false;\r\n } else {\r\n ApexChat.animate(\r\n me.DOM.getElementById('apexchat_static_tab_text'),\r\n `background-color: ${me.options.chatTab.backgroundColor}`,\r\n {\r\n duration: 1000\r\n }\r\n );\r\n shown = true;\r\n }\r\n }\r\n setInterval(chatTabColorChange, me.options.chatTab.chatTabTimer * 1000);\r\n }\r\n // JIRA_3160 - END\r\n const target = me.DOM.getElementById('apexchat_static_tab_text');\r\n me.positioner.position({\r\n element: target,\r\n widgetType: WidgetTypes.Tab\r\n });\r\n if (me.options.chatTab.chatTabType == ChatType.standard) {\r\n if (me.options.chatMode == ChatMode.Windowed) {\r\n me.bindWindowedHandler('#apexchat_static_tab', WidgetTypes.Tab);\r\n } else {\r\n me.setClickCallToAction('apexchat_static_tab', 'Tab'); // starting standard chat DOM/Windowed\r\n }\r\n } else {\r\n me.setClickCallToAction('apexchat_static_tab', 'TabSMS');\r\n }\r\n\r\n me.DOM.getElementById('apexchat_tab_spaces').style.fontSize = '12px';\r\n me.DOM.getElementById('apexchat_static_tab').style.whiteSpace = 'nowrap';\r\n const mainDiv = this.DOM.getElementById(\r\n WidgetTypes.Tab + WidgetStates.ShownMaximized\r\n );\r\n\r\n const height = getStyle(target, 'height');\r\n const border = getStyle(target, 'border-width');\r\n const wrapperMarginLeft = parseFloat(\r\n document.getElementById(me.options.parentDivId).style.marginLeft\r\n );\r\n const borderWidth = parseFloat(border);\r\n const borderWidthTwice = 2 * borderWidth;\r\n const heightWithBorder = `${parseFloat(height) + borderWidthTwice}px`; // add lef and right border width to the height to get actual height\r\n\r\n let width = 0; // we will use this in maxmized state\r\n mainDiv.style.position = target.style.position;\r\n mainDiv.style.height = height;\r\n target.style.top = '0px';\r\n // JIRA_2964 - START - Tab collapsible -\r\n let isTabMinimized = false; // used this flag because we need to control some stuff and state of Tab\r\n if (me.options.chatTab.chatTabCollapsibleEnabled) {\r\n // Major FLAG coming from Portal deciding that which Tab should be shown\r\n // Show newly modified TAB\r\n const chatTabPosition = me.options.chatTab.chatTabLeftSide\r\n ? 'left'\r\n : 'right'; // We need in string that Tab is left or Right\r\n // Assigning Chevron icon accordingly if Position is Left the arrow should point towards right and vice-versa\r\n if (chatTabPosition == 'left') {\r\n addClass(\r\n this.DOM.getElementById('apexchat_tab_chevron_toggle'),\r\n 'apexchat-icon-angle-double-left'\r\n );\r\n } else {\r\n addClass(\r\n this.DOM.getElementById('apexchat_tab_chevron_toggle'),\r\n 'apexchat-icon-angle-double-right'\r\n );\r\n }\r\n\r\n this.bind('#apexchat_tab_toggle_tab_bar', 'click', function (args) {\r\n // cache apexchat_static_tab_text width on load\r\n if (width == 0) {\r\n width = getStyle(target, 'width');\r\n width = `${parseFloat(width) + 40 + borderWidth}px`;\r\n }\r\n mainDiv.style.display = 'none';\r\n setTimeout(() => {\r\n mainDiv.style.display = 'block';\r\n }, 100);\r\n if (isTabMinimized) {\r\n // maximize or expande it?\r\n isTabMinimized = false;\r\n // showing TEXT and increasing size of the TAB_BAR\r\n me.animator.tabMaximize({ element: me.options.parentDivId });\r\n showElement(\r\n me.DOM.getElementById('apexchat_static_tab'),\r\n true\r\n );\r\n // resize wrappers\r\n target.style.width = `${parseFloat(width) - (40 + borderWidth)\r\n }px`;\r\n target.style.marginTop = '0px';\r\n document.getElementById(me.options.iframeId).style.height =\r\n heightWithBorder;\r\n document.getElementById(me.options.iframeId).style.width =\r\n width;\r\n document.getElementById(me.options.parentDivId).style.height =\r\n heightWithBorder;\r\n document.getElementById(me.options.parentDivId).style.width =\r\n width;\r\n // Changing the Chevron (Arrow) direction according to position\r\n if (chatTabPosition === 'left') {\r\n replaceClass(\r\n this.DOM.getElementById('apexchat_tab_chevron_toggle'),\r\n 'apexchat-icon-angle-double-right',\r\n 'apexchat-icon-angle-double-left'\r\n );\r\n } else {\r\n replaceClass(\r\n this.DOM.getElementById('apexchat_tab_chevron_toggle'),\r\n 'apexchat-icon-angle-double-left',\r\n 'apexchat-icon-angle-double-right'\r\n );\r\n }\r\n // Reducing Visitor's step - START: To start chat (CHAT-2964 - Ali's requirements)\r\n // summary: In Collapsible TAB, First visitor will see the maximized state of the tab and he will minimize it by clicking on chevron, but if visitor clicks on chevron again to maximize the TAB, TAB will be maximized and CHAT will be started simultanously.\r\n me.DOM.getElementById('apexchat_static_tab').click(); // Reducing Visitor's step - END\r\n } else {\r\n // minimize or collapse it?\r\n isTabMinimized = true;\r\n // hidding TEXT just showing icon and decreasing size of the TAB_BAR\r\n me.animator.tabMinimize({ element: me.options.parentDivId });\r\n hideElement(\r\n me.DOM.getElementById('apexchat_static_tab')\r\n );\r\n // resize wrappers\r\n const minWidth = `${borderWidth + 95}px`;\r\n target.style.width = '57px';\r\n target.style.marginTop = '0px';\r\n // document.getElementById(me.options.parentDivId).style.marginLeft = wrapperMarginLeft + borderWidth + 'px';\r\n document.getElementById(me.options.parentDivId).style.height =\r\n heightWithBorder;\r\n document.getElementById(me.options.parentDivId).style.width =\r\n minWidth;\r\n document.getElementById(me.options.iframeId).style.height =\r\n heightWithBorder;\r\n document.getElementById(me.options.iframeId).style.width =\r\n minWidth;\r\n // Changing the Chevron (Arrow) direction according to position\r\n if (chatTabPosition == 'left') {\r\n replaceClass(\r\n this.DOM.getElementById('apexchat_tab_chevron_toggle'),\r\n 'apexchat-icon-angle-double-left',\r\n 'apexchat-icon-angle-double-right'\r\n );\r\n } else {\r\n replaceClass(\r\n this.DOM.getElementById('apexchat_tab_chevron_toggle'),\r\n 'apexchat-icon-angle-double-right',\r\n 'apexchat-icon-angle-double-left'\r\n );\r\n }\r\n }\r\n });\r\n // JIRA_2964 - Ali's request in comments when TAB is minimized chatbubble should be clickable in this case only to START CHAT!\r\n observe(\r\n me.DOM.getElementsByClassName('apexchat_tab_typing_indicator')[0],\r\n 'click',\r\n () => {\r\n if (isTabMinimized) {\r\n // Making sure that TAB is minimized!\r\n me.DOM.getElementById('apexchat_static_tab').click();\r\n }\r\n }\r\n );\r\n // JIRA_2964 - Ali's request - END\r\n } else {\r\n // Show classical TAB\r\n hideElement(this.DOM.getElementById('apexchat_tab_spaces'));\r\n hideElement(\r\n this.DOM.getElementsByClassName('apexchat_tab_rotate')[0]\r\n );\r\n if (\r\n me.options.chatTab.showTabBubbleIcon &&\r\n this.DOM.getElementById('apexchat_chat_tab_bubble_icon')\r\n ) {\r\n showElement(\r\n this.DOM.getElementById('apexchat_chat_tab_bubble_icon'),\r\n true\r\n ); // sending true because showElement takes element as parameter and apply display block, if your want element to be dispaly: inline-block then send 'true' as second parameter\r\n const bubbleIconClass =\r\n me.options.chatTab.chatTabType == ChatType.standard\r\n ? 'apexchat_chat_tab_bubble_icon'\r\n : 'apexchat_chat_tab_bubble_icon_sms';\r\n addClass(\r\n this.DOM.getElementById('apexchat_chat_tab_bubble_icon'),\r\n bubbleIconClass\r\n );\r\n }\r\n }\r\n // JIRA_2964 - END\r\n target.style.marginTop = '0px';\r\n me.show();\r\n RunAsSoonAs(\r\n () => {\r\n const contentWidth = parseInt(getStyle(target, 'width'));\r\n const contentHeight = parseInt(getStyle(target, 'height'));\r\n const extraPaddings = 28;\r\n const extraHeight = 8;\r\n logIt(`Tab width:${contentWidth}`);\r\n const widgetIframe = document.getElementById(me.options.iframeId);\r\n widgetIframe.style.width = `${contentWidth + extraPaddings}px`;\r\n widgetIframe.style.height = `${contentHeight + extraHeight}px`;\r\n },\r\n () => parseInt(getStyle(target, 'width')) !== 0 // check for width availability\r\n );\r\n }\r\n }\r\n ],\r\n initialState: WidgetStates.ShownMaximized,\r\n polyfills: [handleWidgetFont]\r\n });\r\n }\r\n\r\n show() {\r\n super.show();\r\n this.maximize();\r\n }\r\n\r\n maximize() {\r\n super.maximize();\r\n }\r\n}\r\n","const setChatTabStyles = (root, chatTab) => {\r\n root.documentElement.style.setProperty('--height', chatTab.height);\r\n root.documentElement.style.setProperty(\r\n '--backgroundAnimateColor',\r\n chatTab.backgroundAnimateColor\r\n );\r\n root.documentElement.style.setProperty('--backgroundColor', chatTab.backgroundColor);\r\n root.documentElement.style.setProperty('--hoverColor', chatTab.hoverColor);\r\n root.documentElement.style.setProperty('--textColor', chatTab.textColor);\r\n root.documentElement.style.setProperty('--fontSize', chatTab.fontSize);\r\n root.documentElement.style.setProperty('--fontWeight', chatTab.fontWeight);\r\n root.documentElement.style.setProperty('--fontFamily', chatTab.fontFamily);\r\n root.documentElement.style.setProperty('--borderColor', chatTab.borderColor);\r\n root.documentElement.style.setProperty('--borderWidth', chatTab.borderWidth);\r\n root.documentElement.style.setProperty('--italic', chatTab.italic);\r\n root.documentElement.style.setProperty('--bold', chatTab.bold);\r\n root.documentElement.style.setProperty('--underline', chatTab.underline);\r\n root.documentElement.style.setProperty('--borderRadius', chatTab.borderRadius);\r\n};\r\nexport default setChatTabStyles;\r\n","import hasClass from './hasClass';\r\n\r\nconst addClass = function (ele, cls) {\r\n if (ele) {\r\n if (!hasClass(ele, cls)) {\r\n ele.className += ` ${cls}`;\r\n }\r\n }\r\n};\r\nexport default addClass;\r\n","import hasClass from \"./hasClass\";\r\n\r\nconst removeClass = function (ele, cls) {\r\n if (hasClass(ele, cls)) {\r\n const reg = new RegExp(`(\\\\s|^)${cls}(\\\\s|$)`);\r\n ele.className = ele.className.replace(reg, ' ');\r\n }\r\n};\r\nexport default removeClass;\r\n","const hasClass = function (ele, cls) {\r\n if (ele) {\r\n return ele.className.match(new RegExp(`(\\\\s|^)${cls}(\\\\s|$)`));\r\n }\r\n};\r\nexport default hasClass;\r\n","/**\r\n *\r\n * a dedicated class for doing positioning\r\n * @param {*} configurations\r\n * @param {*} context optional document object to cater parent and iframe based DOM manipulation alike\r\n * @returns\r\n */\r\n\r\nexport default class Positioner {\r\n constructor(configurations, context) {\r\n const me = this;\r\n me.configuration = configurations;\r\n me.DOM = context || document;\r\n }\r\n\r\n getPureElement(element) {\r\n if (element.indexOf('.') === -1 && element.indexOf('#') === -1) {\r\n return element;\r\n }\r\n return element.substring(1, element.lenght);\r\n }\r\n\r\n getElement(element, pureElement) {\r\n return this.isClass(element)\r\n ? this.DOM.getElementsByClassName(pureElement)[0]\r\n : this.DOM.getElementById(pureElement);\r\n }\r\n\r\n isClass(element) {\r\n return element.indexOf('.') !== -1;\r\n }\r\n}\r\n","import addClass from './addClass';\r\nimport hasClass from './hasClass';\r\nimport removeClass from './removeClass';\r\n\r\nconst replaceClass = function (ele, oldClass, newClass) {\r\n if (ele) {\r\n if (hasClass(ele, oldClass)) {\r\n removeClass(ele, oldClass);\r\n addClass(ele, newClass);\r\n } else {\r\n addClass(ele, newClass);\r\n }\r\n }\r\n};\r\nexport default replaceClass;\r\n","module.exports = function(obj) {\nobj || (obj = {});\nvar __t, __p = '';\nwith (obj) {\n__p += '
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n ' +\n((__t = ( text )) == null ? '' : __t) +\n'         \\r\\n    \\r\\n \\r\\n
\\r\\n
';\n\n}\nreturn __p\n}","/**\r\n *\r\n * a dedicated class for doing positioning\r\n * @param {*} configurations\r\n * @param {*} context optional document object to cater parent and iframe based DOM manipulation alike\r\n * @returns\r\n */\r\nimport Positioner from './Positioner';\r\n\r\nexport default class TabPositioner extends Positioner {\r\n constructor(configurations, context) {\r\n super(configurations, context);\r\n const me = this;\r\n me.configuration = configurations;\r\n me.DOM = context || document;\r\n }\r\n\r\n position(options) {\r\n const me = this;\r\n const tempDOM = me.DOM;\r\n if (options.context) {\r\n me.DOM = options.context;\r\n }\r\n const { element, isIframeOuterObject } = options;\r\n let targetObj;\r\n if (typeof element === 'object') {\r\n targetObj = element;\r\n } else {\r\n const pureElement = this.getPureElement(element);\r\n targetObj = this.getElement(element, pureElement);\r\n }\r\n targetObj.style.paddingLeft = '10px';\r\n targetObj.style.paddingRight = '10px';\r\n targetObj.style.height = this.configuration.chatTab.height;\r\n if (targetObj) {\r\n const iframe = targetObj.querySelector('#apexchat_tab_invitation_frame');\r\n if (iframe) {\r\n iframe.style.width = 'auto';\r\n }\r\n }\r\n\r\n targetObj.style.display = 'block';\r\n let trans = 0;\r\n if (this.configuration.chatTab.chatTabLeftSide) {\r\n trans = -51 + this.configuration.chatTab.chatTabTrans;\r\n targetObj.style.left = 0;\r\n // targetObj.style.marginLeft = this.configuration.chatTab.borderWidth;\r\n targetObj.style.borderBottomRightRadius = this.configuration.chatTab.borderRadius;\r\n targetObj.style.borderBottomLeftRadius = this.configuration.chatTab.borderRadius;\r\n targetObj.style.marginTop = '-10px';\r\n targetObj.style.transformOrigin = 'top';\r\n } else {\r\n trans = 50 + this.configuration.chatTab.chatTabTrans;\r\n targetObj.style.right = 0;\r\n // targetObj.style.marginRight = this.configuration.chatTab.borderWidth;\r\n targetObj.style.borderTopRightRadius = this.configuration.chatTab.borderRadius;\r\n targetObj.style.borderTopLeftRadius = this.configuration.chatTab.borderRadius;\r\n targetObj.style.transformOrigin = 'bottom';\r\n }\r\n if (isIframeOuterObject == true) {\r\n targetObj.style.transform = `translateX(${trans}%) translateY(-50%) rotate(-90deg)`;\r\n targetObj.style.webkitTransform = `translateX(${trans}%) translateY(-50%) rotate(-90deg)`;\r\n targetObj.style.msTransform = `translateX(${trans}%) translateY(-50%) rotate(-90deg)`;\r\n const borderWidth = parseFloat(this.configuration.chatTab.borderWidth);\r\n if (this.configuration.chatTab.chatTabLeftSide) {\r\n if (borderWidth == 0) {\r\n targetObj.style.marginLeft = '8px';\r\n }\r\n } else {\r\n // var marginValue = ;\r\n targetObj.style.marginRight = `${borderWidth + (borderWidth == 0 ? 10 : 20)}px`;\r\n }\r\n }\r\n if (this.configuration.chatTab.hover) {\r\n targetObj.className += 'cstDiv';\r\n }\r\n me.DOM = tempDOM;\r\n }\r\n}\r\n","const getStyle = (el, cssStyle) => {\r\n if (!el) return;\r\n const re = /(-)(\\w)/g;\r\n const ieStyle = cssStyle.replace(re, (m, p1, p2) => p2.toUpperCase());\r\n if (el?.currentStyle) {\r\n // IE\r\n return el.currentStyle[ieStyle];\r\n }\r\n if (window.getComputedStyle) {\r\n // W3C\r\n return window.getComputedStyle(el, '').getPropertyValue(cssStyle);\r\n }\r\n return null;\r\n};\r\nexport default getStyle;\r\n","/*\r\nA Generic class to create an HTML View in browser's window.document\r\nRequired: identifier, 0-many templates \r\n*/\r\nimport addStyleTextInIframe from './hooks/addStyleTextInIframe';\r\nimport parseTemplate from './hooks/parseTemplate';\r\nimport WidgetTypes from './enums/WidgetTypes';\r\nimport AgentImageHandler from './hooks/AgentImageHandler';\r\nimport getStyleForIframe from './hooks/getStyleForIframe';\r\nimport observe from './hooks/observe';\r\nimport showElement from './hooks/showElement';\r\nimport hideElement from './hooks/hideElement';\r\n\r\nexport default class WidgetView {\r\n constructor(options) {\r\n // if (!options.identifier) {\r\n // throw 'identifier is mandatory';\r\n // }\r\n this.options = options;\r\n this.DOM = options.dom;\r\n this.identifier = options.identifier; // EP, DOM or Windowed, etc\r\n this.elements = options.elements ? options.elements : {}; // key-val\r\n this.templates = options.templates; // key-val\r\n if (this.options.style) {\r\n // w idget level css\r\n this.style(this.options.style);\r\n }\r\n if (this.options.cssLink) {\r\n getStyleForIframe(this.options.cssLink, this.options.linkId, undefined, this.DOM);\r\n }\r\n // widget level beforeRender\r\n if (this.options.beforeRender) {\r\n window.setTimeout(this.options.beforeRender.bind2(this), 0);\r\n }\r\n if (options.initialState) {\r\n this.render(options.initialState);\r\n }\r\n // apply polyfills if any - widget level\r\n if (this.options.polyfills) {\r\n this.pollyfill(this, this.options.polyfills);\r\n }\r\n }\r\n\r\n getBody() {\r\n return this.DOM.getElementsByTagName('body')[0];\r\n }\r\n\r\n /*\r\n selectors: is a string containing one or more CSS selectors separated by commas.\r\n */\r\n bind(selector, ev, cb) {\r\n // not tested/used much yet\r\n let elMatched;\r\n try {\r\n elMatched = this.DOM.querySelector(selector);\r\n } catch (e) {\r\n throw 'invalid selector';\r\n }\r\n if (elMatched) {\r\n observe(elMatched, ev, cb.bind2(this, cb)); // invoke cb with in 'this' context\r\n }\r\n }\r\n\r\n reRender(model) {\r\n const wrapper = this.DOM.querySelector(this.elements.containerSelector);\r\n wrapper.innerHTML = parseTemplate(model.chatWidgetTemplate, model);\r\n }\r\n\r\n getContainer() {\r\n return this.elements.containerSelector;\r\n }\r\n\r\n render(state) {\r\n const me = this;\r\n // grab target based on state and show it if already present\r\n const wrapperContainer = this.DOM.getElementById(this.identifier + state);\r\n if (wrapperContainer) {\r\n showElement(wrapperContainer);\r\n return;\r\n }\r\n const tpl = this.templates.find((tpl) => tpl.key == state);\r\n let wrapper;\r\n if (tpl) {\r\n // tpl level beforeRender\r\n if (tpl.beforeRender) {\r\n tpl.beforeRender(tpl);\r\n }\r\n const target = tpl.model.targetElementId\r\n ? this.DOM.getElementById(tpl.model.targetElementId)\r\n : this.getBody();\r\n wrapper = tpl.containerElemType\r\n ? this.DOM.createElement(tpl.containerElemType)\r\n : this.DOM.createElement('div');\r\n\r\n tpl.model.handlerImageUrl = AgentImageHandler(tpl.model.handlerImageUrl);\r\n wrapper.innerHTML = tpl.tpl;\r\n if (tpl.style) {\r\n // tpl level css\r\n this.style(tpl.style);\r\n }\r\n if (tpl.cssLink) {\r\n getStyleForIframe(tpl.cssLink, tpl.linkId, undefined, this.DOM);\r\n }\r\n const containerId = tpl.containerId ? tpl.containerId : this.identifier + state;\r\n wrapper.setAttribute('id', containerId);\r\n if (this.identifier != WidgetTypes.ExitPopup) {\r\n // In case of ExitPopup we dont need this.\r\n hideElement(wrapper);\r\n }\r\n this.elements.containerSelector = `#${containerId}`;\r\n target.appendChild(wrapper);\r\n\r\n // apply polyfills if any - particular template/view level\r\n if (tpl.polyfills) {\r\n this.pollyfill(tpl, tpl.polyfills);\r\n }\r\n } else {\r\n throw `no state found with the key: ${state}`;\r\n }\r\n // tpl level afterRender\r\n if (tpl.afterRender) {\r\n if (\r\n this.identifier === WidgetTypes.ExitPopup ||\r\n this.identifier === WidgetTypes.PreChat\r\n ) {\r\n // In case of ExitPopup and prechat we dont need this.\r\n } else {\r\n window.setTimeout(() => {\r\n if (this.identifier === WidgetTypes.DOM) {\r\n wrapper.style.visibility = 'hidden';\r\n }\r\n showElement(wrapper);\r\n }, 0);\r\n }\r\n window.setTimeout(tpl.afterRender.bind2(this, tpl), 0);\r\n }\r\n // widget level afterRender\r\n if (this.options.afterRender) {\r\n this.options.afterRender.bind2(this);\r\n }\r\n }\r\n\r\n unrender(state, remove) {\r\n // grab target based on state and hide it if already present\r\n const wrapperContainer = this.DOM.getElementById(this.identifier + state);\r\n if (wrapperContainer) {\r\n hideElement(wrapperContainer);\r\n }\r\n // remove altogether if asked\r\n if (remove == true) {\r\n try {\r\n this.DOM.body.removeChild(wrapperContainer);\r\n } catch (e) { }\r\n }\r\n }\r\n\r\n style(css) {\r\n const cssArr = Array.isArray(css) ? css : [css]; // css could be a single obj or list of css obj's\r\n for (let i = 0; i < cssArr.length; i++) {\r\n addStyleTextInIframe(cssArr[i], undefined, undefined, this.DOM);\r\n }\r\n }\r\n\r\n // These are callback functions which get invoked after rendering a view\r\n pollyfill(scope, callbacks) {\r\n const tweaksArr = Array.isArray(callbacks) ? callbacks : [callbacks]; // tweaks could be a single func or list of func\r\n for (let i = 0; i < tweaksArr.length; i++) {\r\n const tweak = tweaksArr[i];\r\n if (typeof tweak === 'function') {\r\n try {\r\n tweak.apply(scope, tweak.arguments);\r\n } catch (e) {\r\n // console.log(e);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"],"names":["TabInvitation","BaseWidget","constructor","options","chatTab","super","Object","assign","widget","WidgetTypes","Tab","styleName","this","positioner","TabPositioner","DOM","ready","console","log","create","me","polyfills","style","backgroundColor","push","re","RegExp","model","fontFamily","replace","view","WidgetView","dom","identifier","templates","key","WidgetStates","ShownMaximized","tpl","chatTabTemplate","afterRender","root","documentElement","setProperty","height","backgroundAnimateColor","hoverColor","textColor","fontSize","fontWeight","borderColor","borderWidth","italic","bold","underline","borderRadius","addStyleTextInIframe","invitationWidgetStyle","undefined","chatTabAnimate","chatTabTimer","shown","chatTabColorChange","ApexChat","animate","getElementById","duration","setInterval","setChatTabStyles","target","position","element","widgetType","chatTabType","ChatType","standard","chatMode","ChatMode","Windowed","bindWindowedHandler","setClickCallToAction","whiteSpace","mainDiv","getStyle","border","parseFloat","document","parentDivId","marginLeft","borderWidthTwice","heightWithBorder","width","top","isTabMinimized","chatTabCollapsibleEnabled","chatTabPosition","chatTabLeftSide","addClass","bind","args","display","setTimeout","animator","tabMaximize","showElement","marginTop","iframeId","replaceClass","click","tabMinimize","hideElement","minWidth","observe","getElementsByClassName","showTabBubbleIcon","bubbleIconClass","show","RunAsSoonAs","contentWidth","parseInt","contentHeight","logIt","widgetIframe","initialState","maximize","ele","cls","hasClass","className","reg","match","Positioner","configurations","context","configuration","getPureElement","indexOf","substring","lenght","getElement","pureElement","isClass","oldClass","newClass","removeClass","module","exports","obj","__t","__p","tempDOM","isIframeOuterObject","targetObj","paddingLeft","paddingRight","iframe","querySelector","trans","chatTabTrans","left","borderBottomRightRadius","borderBottomLeftRadius","transformOrigin","right","borderTopRightRadius","borderTopLeftRadius","transform","webkitTransform","msTransform","marginRight","hover","el","cssStyle","ieStyle","m","p1","p2","toUpperCase","currentStyle","window","getComputedStyle","getPropertyValue","elements","cssLink","getStyleForIframe","linkId","beforeRender","bind2","render","pollyfill","getBody","getElementsByTagName","selector","ev","cb","elMatched","e","reRender","containerSelector","innerHTML","parseTemplate","chatWidgetTemplate","getContainer","state","wrapperContainer","find","wrapper","targetElementId","containerElemType","createElement","handlerImageUrl","AgentImageHandler","containerId","setAttribute","ExitPopup","appendChild","PreChat","visibility","unrender","remove","body","removeChild","css","cssArr","Array","isArray","i","length","scope","callbacks","tweaksArr","tweak","apply","arguments"],"sourceRoot":""}