{"version":3,"file":"registerDOM.chunk.b296cedeb4feb17e40de.js","mappings":"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","sources":["webpack://apexchatwidgets/./widgets/core/hooks/showElement.js","webpack://apexchatwidgets/./widgets/core/hooks/addClass.js","webpack://apexchatwidgets/./widgets/core/hooks/elementIsNotNULL.js","webpack://apexchatwidgets/./widgets/core/hooks/hasClass.js","webpack://apexchatwidgets/./widgets/core/hooks/getViewport.js","webpack://apexchatwidgets/./widgets/core/positioners/Positioner.js","webpack://apexchatwidgets/./widgets/core/positioners/DOMPositioner.js","webpack://apexchatwidgets/./widgets/dom/RegisterDOM.js","webpack://apexchatwidgets/./widgets/core/hooks/parseTemplate.js"],"sourcesContent":["import elementIsNotNULL from \"../../core/hooks/elementIsNotNULL\";\r\n\r\n/**\r\n * Shows or hides the specified element based on the value of isSpan.\r\n *\r\n * @param {string|HTMLElement} element - The element to show or hide.\r\n * @param {boolean} isSpan - A flag to determine if the element should be displayed inline-block.\r\n */\r\nconst showElement = function (element, isSpan) {\r\n // isSpan is introduced if element TagName is SPAN than it should be inline-block\r\n if (typeof element === 'string') {\r\n element = document.getElementById(element);\r\n }\r\n if (elementIsNotNULL(element)) {\r\n if (!isSpan) {\r\n element.style.display = 'block';\r\n } else {\r\n element.style.display = 'inline-block';\r\n }\r\n }\r\n};\r\nexport default showElement;\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","const elementIsNotNULL = function (object) {\r\n if (object) {\r\n return true;\r\n }\r\n return false;\r\n};\r\nexport default elementIsNotNULL;\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","const getViewport = () => {\r\n let viewportwidth;\r\n let viewportheight;\r\n\r\n // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight\r\n if (typeof window.innerWidth !== 'undefined') {\r\n viewportwidth = window.innerWidth;\r\n viewportheight = window.innerHeight;\r\n }\r\n\r\n\r\n // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)\r\n else if (typeof document.documentElement !== 'undefined' &&\r\n typeof document.documentElement.clientWidth !== 'undefined' &&\r\n document.documentElement.clientWidth) {\r\n viewportwidth = document.documentElement.clientWidth;\r\n viewportheight = document.documentElement.clientHeight;\r\n }\r\n\r\n\r\n // older versions of IE\r\n else {\r\n viewportwidth = document.getElementsByTagName('body')[0].clientWidth;\r\n viewportheight = document.getElementsByTagName('body')[0].clientHeight;\r\n }\r\n\r\n return [viewportwidth, viewportheight];\r\n};\r\nexport default getViewport;\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","/**\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 ChatMode from '../hooks/ChatMode';\r\nimport getViewport from '../hooks/getViewport';\r\nimport { Position, SkinInviteType } from '../enums/Enum';\r\nimport Positioner from './Positioner';\r\nimport showElement from '../hooks/showElement';\r\nimport addClass from '../hooks/addClass';\r\n\r\nexport default class DOMPositioner 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 if (options.isScroll) {\r\n return;\r\n }\r\n const objName = options.element;\r\n let targetObj;\r\n if (typeof objName === 'object') {\r\n targetObj = objName;\r\n } else {\r\n const pureElement = this.getPureElement(objName);\r\n targetObj = this.getElement(objName, pureElement);\r\n }\r\n let padding = 7;\r\n const container = targetObj;\r\n const dims = getViewport();\r\n /// For Android Glaxy tablets isMobile flag is not working thats why we add the android user agent condition\r\n if (options.model.options.isMobile || /Android/i.test(navigator.userAgent)) {\r\n const diff =\r\n ApexChat.ApexChatJquery(window).height() -\r\n ApexChat.ApexChatJquery(container).height();\r\n const current = ApexChat.ApexChatJquery(container, this.DOM).height();\r\n let target = current + diff;\r\n if (target < 110) {\r\n target = 110; // cutoff\r\n }\r\n let className = 'apexchat_dompopup_chatwindow_wrapper_mobile_width';\r\n if (ApexChat.options.skinInviteType === SkinInviteType.Rounded_Dynamic) {\r\n className = 'apexchat_rd_dompopup_chatwindow_wrapper_mobile_width';\r\n target = dims[1];\r\n }\r\n ApexChat.ApexChatJquery(container, this.DOM).css({ height: `${target}px` });\r\n if (!ApexChat.ApexChatJquery(container, this.DOM).hasClass(className)) {\r\n addClass(ApexChat.ApexChatJquery(container, this.DOM)[0], className);\r\n }\r\n if (!ApexChat.originalDeviceHeight) {\r\n ApexChat.originalDeviceHeight = target; // set height of screen only first time\r\n }\r\n ApexChat.deviceHeight = target;\r\n if (\r\n /iPad|iPhone|iPod/.test(navigator.userAgent) &&\r\n !window.MSStream &&\r\n options.model.options.chatMode == ChatMode.DOM\r\n ) {\r\n const lastHeight = ApexChat.ApexChatJquery(window).height(); // store the intial height.\r\n const lastWidth = ApexChat.ApexChatJquery(window).width(); // store the intial width.\r\n const keyboardIsOn = false;\r\n if (ApexChat.ApexChatJquery('#apexchat_chatMsg_textbox', this.DOM).is(':focus')) {\r\n ApexChat.ApexChatJquery('.livechat_messages', this.DOM).css({\r\n height: `${lastHeight / 3.5}px`\r\n });\r\n } else {\r\n ApexChat.ApexChatJquery('.livechat_messages', this.DOM).css({\r\n height: `${target}px`\r\n });\r\n }\r\n }\r\n } else {\r\n try {\r\n // support for padding in FF, etc\r\n const el = ApexChat.ApexChatJquery(container, this.DOM);\r\n const shadow =\r\n el.css('-moz-box-shadow') + el.css('-webkit-box-shadow') + el.css('box-shadow');\r\n if (shadow) {\r\n let parts = shadow.split(' ');\r\n parts = parts.slice(parts.length - 4);\r\n padding = 0;\r\n for (let i = 0; i < parts.length; i++) {\r\n const x = parseInt(parts[i], 10);\r\n if (!isNaN(x)) {\r\n padding += x;\r\n }\r\n }\r\n }\r\n } catch (e) { }\r\n if (options.model.options.position === Position.Center) {\r\n options.model.options.position = Position.Right;\r\n }\r\n container.style.position = 'fixed';\r\n // CHAT-5085 the Iframe size is increasing in case of long content(header disclaimer) but content is making scroll to be appeared as required.\r\n if (options.model.computedHeight && options.model.computedHeight < 500) {\r\n container.firstChild.style.height = `${options.model.computedHeight}px`;\r\n } else {\r\n container.firstChild.style.height = '500px'; // If Size is increasing more than 580 than put 580 as max-size.\r\n if (\r\n options.model.options.videoGreet &&\r\n options.model.options.videoGreet.persistVideoRatioForWidget\r\n ) {\r\n container.firstChild.style.width = `${ApexChat.WidgetMaximizedWidth + 32}px`;\r\n const triggerWidgetResize = function () {\r\n const winHeight = window.innerHeight;\r\n const widgetHeight = ApexChat.WidgetMaximizedHeight;\r\n container.firstChild.style.height =\r\n winHeight < widgetHeight ? `${winHeight - 20}px` : `${widgetHeight}px`;\r\n };\r\n triggerWidgetResize();\r\n window.addEventListener(\r\n 'resize',\r\n (event) => {\r\n triggerWidgetResize();\r\n },\r\n true\r\n );\r\n }\r\n }\r\n switch (options.model.options.position) {\r\n case Position.Right:\r\n container.style.bottom = '10px';\r\n container.style.right = '0px';\r\n break;\r\n case Position.Left:\r\n container.style.bottom = '10px';\r\n container.style.left = '0px';\r\n break;\r\n case Position.Middle:\r\n container.style.bottom = '10px';\r\n container.style.left = `${dims[0] / 2 - container.offsetWidth / 2}px`;\r\n break;\r\n case Position.TopRight:\r\n container.style.top = '0px';\r\n container.style.right = '0px';\r\n break;\r\n case Position.TopLeft:\r\n container.style.top = '0px';\r\n container.style.left = '0px';\r\n break;\r\n case Position.TopMiddle:\r\n container.style.top = '0px';\r\n container.style.left = `${dims[0] / 2 - container.offsetWidth / 2}px`;\r\n break;\r\n case Position.LeftCenter:\r\n container.style.top = `${dims[1] / 4 - 0}px`;\r\n container.style.left = '0px';\r\n break;\r\n case Position.RightCenter:\r\n container.style.top = `${dims[1] / 4 - 0}px`;\r\n container.style.right = '0px';\r\n break;\r\n default:\r\n }\r\n }\r\n me.DOM = tempDOM;\r\n showElement(me.DOM.querySelector('#apexchat_dompopup_chatwindow_max'));\r\n me.DOM.querySelector('#apexchat_dompopup_chatwindow_max').style.visibility = 'visible';\r\n }\r\n}\r\n","/**\r\n * client/wrapper type for the DOM widget on parent/page\r\n */\r\nimport BaseWidgetClient from '../core/BaseWidgetClient';\r\nimport DOMPositioner from '../core/positioners/DOMPositioner';\r\nimport WidgetTypes from '../core/enums/WidgetTypes';\r\nimport parseTemplate from '../core/hooks/parseTemplate';\r\nimport Browser from '../core/hooks/Browser';\r\nimport WidgetStates from '../core/hooks/WidgetStates';\r\nimport createNS from '../core/createNs';\r\n\r\nexport default function RegisterDOM() {\r\n const DOM = class extends BaseWidgetClient {\r\n constructor(options) {\r\n super(\r\n Object.assign(options, {\r\n widget: WidgetTypes.DOM,\r\n elDragnDrop: 'apexchat_dom_dragndrop'\r\n })\r\n );\r\n this.ready();\r\n const iframe = document.getElementById(this.iframeId);\r\n let frameDoc = iframe?.document;\r\n if (iframe?.contentWindow) {\r\n frameDoc = iframe.contentWindow.document;\r\n }\r\n this.positioner = new DOMPositioner(this.options, frameDoc || null);\r\n }\r\n\r\n ready() {\r\n super.ready();\r\n const me = this;\r\n me.subscribe(WidgetTypes.DOM + WidgetStates.ShownMaximized, () => {\r\n if (!me.isMobile()) {\r\n // me.handleZooming();\r\n }\r\n });\r\n me.subscribe(WidgetTypes.DOM + WidgetStates.Hidden, () => {\r\n document.getElementById(me.parentDivId).style.display = 'none';\r\n });\r\n me.subscribe(WidgetTypes.DOM + WidgetStates.ShownMaximized, (args) => {\r\n document.getElementById(me.parentDivId).style.display = 'block';\r\n });\r\n window.addEventListener('resize', handleWindowEvents);\r\n window.addEventListener('scroll', handleWindowEvents);\r\n window.addEventListener('orientationchange', handleWindowEvents);\r\n function handleWindowEvents(e) {\r\n const isScroll = e.type == 'scroll';\r\n // We do not need resize function on drag n drop - CHAT-8138\r\n if (e.type != 'resize') {\r\n const data = { options: me.options };\r\n me.positioner.position({\r\n element: me.parentDivId,\r\n widgetType: WidgetTypes.DOM,\r\n model: data,\r\n isScroll\r\n });\r\n }\r\n }\r\n this.create();\r\n }\r\n\r\n create() {\r\n super.create();\r\n const me = this;\r\n let dragDropCSS = 'standard_dialog';\r\n me.$container.style.zIndex = '9999999999';\r\n me.$container.style.display = 'none';\r\n\r\n me.options.chatWidth = '392px';\r\n // me.options.chatWidth = ApexChat.IsRoundedDynamicPlusTheme ? '450px' : '392px';\r\n if (\r\n /iPad|iPhone|iPod/.test(navigator.userAgent) ||\r\n /Android/i.test(navigator.userAgent)\r\n ) {\r\n me.options.chatWidth = '100%';\r\n }\r\n // check skinnable and image based widget enabled then run below condition\r\n if (\r\n (me.options && me.options.skinnable) ||\r\n (me.options.skinRegions && me.options.skinRegions.length > 0)\r\n ) {\r\n dragDropCSS = 'standard_dialog';\r\n } else {\r\n dragDropCSS = 'livechat_dialog';\r\n }\r\n\r\n let themeClass = ApexChat.IsRoundedDynamicPlusTheme ? \"livechat-rd-plus-theme-iframe\" : \"livechat-rd-theme-iframe\";\r\n me.$container.classList.add(themeClass)\r\n // TODO: These 3 lines are similer we need some generic work here to cater it.\r\n me.$container.innerHTML = `