{"version":3,"file":"registerDOM.chunk.e617b356ea6b69d0db7e.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\nimport loadJQuery from '../hooks/loadJQuery';\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 loadJQuery().then(_ => {\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 });\r\n } else {\r\n try {\r\n loadJQuery().then(_ => {\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 });\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 = `