{"version":3,"file":"registerVideoGreet.chunk.744f95598f5a7d1689e0.js","mappings":"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","sources":["webpack://apexchatwidgets/./widgets/core/hooks/getViewport.js","webpack://apexchatwidgets/./widgets/core/positioners/Positioner.js","webpack://apexchatwidgets/./widgets/core/hooks/getFixedTop.js","webpack://apexchatwidgets/./widgets/videogreet/RegisterVideoGreetInvitation.js","webpack://apexchatwidgets/./widgets/core/hooks/getStyle.js","webpack://apexchatwidgets/./widgets/core/positioners/DropDownPositioner.js"],"sourcesContent":["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","import getBody from './getBody';\r\nimport { Position } from '../enums/Enum';\r\nimport getViewport from './getViewport';\r\n\r\n// determines the \"top\" coordinate needed to create a fixed position simulation\r\n/* If this context will be provided than this function will return the scroll position of that specific context */\r\nconst getFixedTop = (position, container, padding, forceEdge, context) => {\r\n let scroll;\r\n if (context) {\r\n scroll = context.documentElement.scrollTop\r\n ? context.documentElement.scrollTop\r\n : getBody(context).scrollTop;\r\n } else {\r\n scroll = document.documentElement.scrollTop\r\n ? document.documentElement.scrollTop\r\n : getBody().scrollTop;\r\n }\r\n if (!container) {\r\n // If container is NULL then just assign it.\r\n container = document.getElementById('apexchat');\r\n }\r\n if (container.offsetHeight) {\r\n const dims = getViewport();\r\n const halfHeight = dims[1] / 2 - container.offsetHeight / 2;\r\n\r\n const pos = position == Position.Center\r\n ? halfHeight + scroll\r\n : dims[1] - container.offsetHeight + scroll;\r\n return `${pos - (padding || 0)}px`;\r\n }\r\n};\r\nexport default getFixedTop;\r\n","/**\r\n * client/wrapper type for the VideoGreet widget on parent/page\r\n */\r\nimport BaseWidgetClient from '../core/BaseWidgetClient';\r\nimport WidgetTypes from '../core/enums/WidgetTypes';\r\nimport TempCache from '../core/enums/TempCache';\r\nimport DropDownPositioner from '../core/positioners/DropDownPositioner';\r\nimport { Position } from '../core/enums/Enum';\r\nimport addStyleText from '../core/hooks/addStyleText';\r\nimport getStyle from '../core/hooks/getStyle';\r\nimport WidgetStates from '../core/hooks/WidgetStates';\r\nimport createNS from '../core/createNs';\r\nimport logIt from '../../logIt';\r\n\r\nexport default function RegisterVideoGreetInvitation() {\r\n const VideoGreet = class extends BaseWidgetClient {\r\n constructor(options) {\r\n if (!options.videoGreetEnabled) {\r\n return;\r\n }\r\n super(\r\n Object.assign(options, {\r\n widget: WidgetTypes.VideoGreetInvitation\r\n })\r\n );\r\n this.positioner = new DropDownPositioner(this.options);\r\n this.ready();\r\n }\r\n\r\n ready() {\r\n super.ready();\r\n const me = this;\r\n this.subscribe('videogreet-auto-resizing', (args) => {\r\n try {\r\n if (!me.options.isPreChatRoundedTheme) {\r\n return;\r\n }\r\n const padding = 40; // padding and shadow\r\n const extraHeightForSingleMsg = 5;\r\n const extraHeightForStackedMsgs = 30;\r\n // getting the videogreet Height/Width...\r\n const VideoGreetHeight =\r\n ApexChat.PreChatIconDimensions.Height + padding + closeButton.height;\r\n const VideoGreetWidth = ApexChat.PreChatIconDimensions.Width + padding;\r\n // getting iframe\r\n const iframe = document.getElementById(me.iframeId);\r\n // Hide All messages on CLOSE Press\r\n const allAppearedMessages = me.$(\r\n '.apexchat_prechat_message_bubble',\r\n iframe.contentDocument\r\n );\r\n if (args.hideCloseButton && allAppearedMessages) {\r\n allAppearedMessages.hide(); // hiding all messages..\r\n }\r\n const addedHeight = args.isSingleMsg\r\n ? extraHeightForSingleMsg\r\n : extraHeightForStackedMsgs; // incase of Single msg 5px, otherwise 30px\r\n // expected height formula for giving to IFRAME\r\n const expectedHeight =\r\n (args.currentMsgHeight || 0) /* height of current message */ +\r\n (args.prevMsgHeight ||\r\n 0) /* If prev. msg was not there or undefined height add 0 only */ +\r\n VideoGreetHeight /* PreChat Circle invitation height */ +\r\n addedHeight /* Padding and shadow etc. extra height */ +\r\n (args.isErrorMsgForFT ? args.errorMsgHeight : 0); // Error msg expected hight\r\n // updating heights with expected height.\r\n TempCache.PRECHAT_Rounded_Message_Popup_Last_Height =\r\n expectedHeight - VideoGreetHeight + addedHeight;\r\n TempCache.PRECHAT_Rounded_Message_Popup_Current_Height =\r\n expectedHeight - VideoGreetHeight + addedHeight;\r\n // applying CSS for Height\r\n me.$(me.$container).animate({ height: expectedHeight }, 1); // adding height to container and iframe..\r\n me.$(iframe).animate({ height: expectedHeight }, 1);\r\n const calculatedPosition =\r\n expectedHeight -\r\n closeButton.height -\r\n parseInt(args.prevMsgHeight || extraHeightForSingleMsg) -\r\n parseInt(args.prevMsgHeight ? addedHeight : 0) +\r\n closeButton.padding;\r\n const closeElement = me.$(\r\n '#apexchat_prechat_rd_close_btn_icon',\r\n iframe.contentDocument\r\n );\r\n // we need to check in some cases If this flag is TRUE we need to hide all prechat messages.\r\n if (\r\n args.hidePreChatMessages &&\r\n me.$('.apexchat_prechat_message_bubble', iframe.contentDocument)\r\n ) {\r\n me.$('.apexchat_prechat_message_bubble', iframe.contentDocument).hide();\r\n }\r\n /* Improved logic of hiding Close button as we dont need to show close button when its not supports i.e in DEFAULT animation\r\n hideClosebutton: In case of CLOSE button Press\r\n isClosebuttonSupported: If its not supported in case of Default animation.\r\n */\r\n if (\r\n (args.hideCloseButton || !closeButton.isCloseButtonSupported) &&\r\n closeElement\r\n ) {\r\n closeElement.hide();\r\n } else {\r\n closeElement.show();\r\n /* Stacking-based animation supports Close button & dontAnimateCloseButton in some scenarios. */\r\n if (closeButton.isCloseButtonSupported && !args.dontAnimateClosebutton) {\r\n closeElement.animate({ bottom: calculatedPosition }, 200);\r\n }\r\n }\r\n me.VideoGreetDefaultWidth =\r\n me.VideoGreetDefaultWidth || getStyle(iframe, 'width');\r\n if (args.isResetIframe) {\r\n me.$(iframe).css({ width: VideoGreetWidth });\r\n me.$(me.$container).css({ width: VideoGreetWidth });\r\n } else {\r\n me.$(iframe).css({ width: me.VideoGreetDefaultWidth });\r\n me.$(me.$container).css({ width: me.VideoGreetDefaultWidth });\r\n }\r\n } catch (e) {\r\n logIt(e);\r\n }\r\n });\r\n this.subscribe('videogreet-size', (args) => {\r\n const iframe = document.getElementById(me.iframeId);\r\n let addValueWidth;\r\n let addValueHeight;\r\n if (args.isPreChatRoundedTheme) {\r\n addValueWidth = args.addValue + 80;\r\n } else {\r\n addValueWidth = args.addValue;\r\n addValueHeight = args.addValue;\r\n }\r\n if (args.height && me?.options?.videoGreet?.chatBarEnabled && window.innerHeight < args.height) {\r\n var chatBarContainer = document.getElementById(\r\n 'apexchat_bar_invitation_wrapper'\r\n );\r\n var chatBarHeight = chatBarContainer.offsetHeight;\r\n var chatBarWidth = chatBarContainer.offsetWidth;\r\n if (chatBarWidth > chatBarHeight) {\r\n args.height = args.height - chatBarHeight;\r\n }\r\n if (chatBarWidth < chatBarHeight) {\r\n args.width = args.width - chatBarWidth;\r\n }\r\n }\r\n iframe.style.width = `${args.width || ApexChat.WidgetMinimizedWidth}px`;\r\n iframe.style.height = `${args.height || ApexChat.WidgetMinimizedHeight}px`;\r\n me.$container.style.width = `${args.width + addValueWidth}px`;\r\n me.$container.style.height = `${args.height + addValueHeight}px`;\r\n me.$container.style.bottom = 0;\r\n me.positioner.position({\r\n element: me.parentDivId,\r\n widgetType: WidgetTypes.VideoGreetInvitation,\r\n position: me.options.videoGreet.videoGreetPosition\r\n });\r\n });\r\n this.subscribe(\r\n WidgetTypes.VideoGreetInvitation + WidgetStates.Hidden,\r\n (args) => {\r\n me.$container.style.display = 'none';\r\n }\r\n );\r\n this.subscribe(\r\n WidgetTypes.VideoGreetInvitation + WidgetStates.ShownMaximized,\r\n (args) => {\r\n const DDState = me.state.getStateValue(WidgetTypes.DropDown);\r\n if (DDState == WidgetStates.ShownMinimized) {\r\n return;\r\n }\r\n me.$container.style.display = 'block';\r\n me.positioner.position({\r\n element: me.parentDivId,\r\n widgetType: WidgetTypes.VideoGreetInvitation,\r\n position: me.options.videoGreet.videoGreetPosition\r\n });\r\n }\r\n );\r\n this.create();\r\n }\r\n\r\n create() {\r\n super.create();\r\n const self = this;\r\n addStyleText(this.options.invitationWidgetStyleCustom, 'test_css');\r\n\r\n self.$container.innerHTML = ``;\r\n document.body.appendChild(self.$container);\r\n self.$container.style.cssText = `margin: 10px;visibility: hidden; position: fixed; z-index:${TempCache.CONTAINER_Z_INDEX}; padding: 0px 10px 0px 0px`;\r\n if (\r\n self.options.videoGreet &&\r\n self.options.videoGreet.videoGreetPosition === Position.Right\r\n ) {\r\n self.$container.style.cssText += ' right:0px;';\r\n }\r\n this.show();\r\n }\r\n\r\n show() {\r\n super.show();\r\n }\r\n };\r\n const _fq_name = `apexchat_video_greet_invitation_client`;\r\n // Export to window\r\n createNS(_fq_name, VideoGreet);\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\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 Browser from '../hooks/Browser';\r\nimport getFixedTop from '../hooks/getFixedTop';\r\nimport getViewport from '../hooks/getViewport';\r\nimport WidgetsCache from '../WidgetsCache';\r\nimport { ChatbarPosition, Position } from '../enums/Enum';\r\nimport WidgetTypes from '../enums/WidgetTypes';\r\nimport Positioner from './Positioner';\r\n\r\nexport default class DropDownPositioner 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\r\n const { element, position, model } = options;\r\n const pureElement = this.getPureElement(element);\r\n const targetObj = this.getElement(element, pureElement);\r\n const dims = getViewport();\r\n const halfHeight = dims[1] / 2 - targetObj.offsetHeight / 2;\r\n let end =\r\n position == Position.Center ||\r\n position == Position.LeftCenter ||\r\n position == Position.RightCenter\r\n ? `${halfHeight}px`\r\n : '0px';\r\n let attr = 'bottom';\r\n // for IE, we deal with the top of the invitation\r\n if (Browser.isIE()) {\r\n attr = 'top';\r\n end = getFixedTop(position, targetObj);\r\n }\r\n if (\r\n !(\r\n position == Position.TopLeft ||\r\n position == Position.TopMiddle ||\r\n position == Position.TopRight\r\n )\r\n ) {\r\n targetObj.style[attr] = end;\r\n } else {\r\n targetObj.style.top = end;\r\n }\r\n let barWidget = null;\r\n try {\r\n barWidget = WidgetsCache.get(WidgetTypes.Bar);\r\n } catch (error) { }\r\n\r\n if (model && model.overflow) {\r\n targetObj.style.overflow = 'visible'; // we need it visible\r\n }\r\n if (model && model.bottom) {\r\n targetObj.style.bottom = model.bottom;\r\n }\r\n // left/right adjustments\r\n switch (position) {\r\n case Position.TopRight:\r\n case Position.RightCenter:\r\n case Position.Right:\r\n targetObj.style.left = 'auto';\r\n targetObj.style.right = '0px';\r\n if (model && model.right) {\r\n targetObj.style.right = model.right;\r\n }\r\n break;\r\n case Position.Left:\r\n targetObj.style.left = '0px';\r\n if (model && model.left) {\r\n targetObj.style.left = model.left;\r\n }\r\n break;\r\n case Position.TopLeft:\r\n targetObj.style.right = 'auto';\r\n targetObj.style.left = '0px';\r\n break;\r\n case Position.Center:\r\n case Position.Middle:\r\n case Position.TopMiddle:\r\n targetObj.style.right = 'auto';\r\n targetObj.style.left = `${dims[0] / 2 - targetObj.offsetWidth / 2}px`;\r\n targetObj.style.left = 'auto';\r\n targetObj.style.right = '0px';\r\n targetObj.style.top = '0px';\r\n break;\r\n default:\r\n }\r\n if (barWidget) {\r\n const height = document.getElementById(barWidget.parentDivId).offsetHeight;\r\n const width = document.getElementById(barWidget.parentDivId).offsetWidth;\r\n if (\r\n barWidget.options.chatbar.position == ChatbarPosition.Bottom &&\r\n (position == Position.Right ||\r\n position == Position.Middle ||\r\n position == Position.Left)\r\n ) {\r\n targetObj.style.marginBottom = `${height}px`;\r\n } else if (\r\n barWidget.options.chatbar.position == ChatbarPosition.Top &&\r\n (position == Position.TopRight ||\r\n position == Position.TopMiddle ||\r\n position == Position.TopLeft)\r\n ) {\r\n targetObj.style.marginTop = `${height}px`;\r\n } else if (\r\n barWidget.options.chatbar.position == ChatbarPosition.Left &&\r\n (position == Position.TopLeft ||\r\n position == Position.LeftCenter ||\r\n position == Position.Left)\r\n ) {\r\n targetObj.style.marginLeft = `${width}px`;\r\n } else if (\r\n barWidget.options.chatbar.position == ChatbarPosition.Right &&\r\n (position == Position.TopRight ||\r\n position == Position.RightCenter ||\r\n position == Position.Right)\r\n ) {\r\n targetObj.style.marginRight = `${width}px`;\r\n }\r\n }\r\n /* // CHAT-6807 - Added Additional Margin from Bottom for Prechat only. */\r\n if (model && model.preChat) {\r\n targetObj.style.bottom = `${model.preChat.preChatMarginFromBottom}px`;\r\n }\r\n me.DOM = tempDOM;\r\n }\r\n}\r\n"],"names":["getViewport","viewportwidth","viewportheight","window","innerWidth","innerHeight","document","documentElement","clientWidth","clientHeight","getElementsByTagName","Positioner","constructor","configurations","context","this","configuration","DOM","getPureElement","element","indexOf","substring","lenght","getElement","pureElement","isClass","getElementsByClassName","getElementById","getFixedTop","position","container","padding","forceEdge","scroll","scrollTop","getBody","offsetHeight","dims","halfHeight","Position","Center","RegisterVideoGreetInvitation","VideoGreet","BaseWidgetClient","options","videoGreetEnabled","super","Object","assign","widget","WidgetTypes","VideoGreetInvitation","positioner","DropDownPositioner","ready","me","subscribe","args","isPreChatRoundedTheme","extraHeightForSingleMsg","extraHeightForStackedMsgs","VideoGreetHeight","ApexChat","PreChatIconDimensions","Height","closeButton","height","VideoGreetWidth","Width","iframe","iframeId","allAppearedMessages","$","contentDocument","hideCloseButton","hide","addedHeight","isSingleMsg","expectedHeight","currentMsgHeight","prevMsgHeight","isErrorMsgForFT","errorMsgHeight","TempCache","PRECHAT_Rounded_Message_Popup_Last_Height","PRECHAT_Rounded_Message_Popup_Current_Height","$container","animate","calculatedPosition","parseInt","closeElement","hidePreChatMessages","isCloseButtonSupported","show","dontAnimateClosebutton","bottom","VideoGreetDefaultWidth","getStyle","isResetIframe","css","width","e","logIt","addValueWidth","addValueHeight","addValue","videoGreet","chatBarEnabled","chatBarContainer","chatBarHeight","chatBarWidth","offsetWidth","style","WidgetMinimizedWidth","WidgetMinimizedHeight","parentDivId","widgetType","videoGreetPosition","WidgetStates","Hidden","display","ShownMaximized","state","getStateValue","DropDown","ShownMinimized","create","self","addStyleText","invitationWidgetStyleCustom","innerHTML","body","appendChild","cssText","CONTAINER_Z_INDEX","Right","createNS","el","cssStyle","ieStyle","replace","m","p1","p2","toUpperCase","currentStyle","getComputedStyle","getPropertyValue","tempDOM","model","targetObj","end","LeftCenter","RightCenter","attr","Browser","isIE","TopLeft","TopMiddle","TopRight","top","barWidget","WidgetsCache","get","Bar","error","overflow","left","right","Left","Middle","chatbar","ChatbarPosition","Bottom","Top","marginRight","marginLeft","marginTop","marginBottom","preChat","preChatMarginFromBottom"],"sourceRoot":""}