{"version":3,"file":"7e1b095d43b72790ed70.js","mappings":"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","sources":["webpack://LiveHelperChat/./src/lib/widgets/needhelpWidget.js"],"sourcesContent":["import {settings} from '../settings.js';\nimport {UIConstructorIframe} from '../UIConstructorIframe';\nimport {helperFunctions} from '../helperFunctions';\n\nexport class needhelpWidget{\n constructor(prefix) {\n\n this.attributes = {};\n this.hidden = false;\n this.widgetOpen = false;\n this.invitationOpen = false;\n this.nhOpen = false;\n this.delayProcessed = false;\n\n this.cont = new UIConstructorIframe((prefix || 'lhc')+'_needhelp_widget_v2', helperFunctions.getAbstractStyle({\n zindex: \"2147483639\",\n width: \"320px\",\n height: \"135px\",\n position: \"fixed\",\n display: \"none\",\n }), {\"role\":\"presentation\",\"translate\":\"no\"}, \"iframe\");\n\n this.loadStatus = {main : false, theme: false, status: false};\n }\n \n checkLoadStatus() {\n if (this.loadStatus['theme'] == true && this.loadStatus['main'] == true && this.loadStatus['status'] == true) {\n this.cont.elmDomDoc.body.style.display = \"\";\n }\n }\n \n init(attributes, settings) {\n\n this.attributes = attributes;\n\n var placement = {bottom: (70 + this.attributes.widgetDimesions.value.wbottom) +\"px\", right: (65+this.attributes.widgetDimesions.value.wright) + \"px\"};\n\n var leftPosition = false;\n\n if (attributes.position_placement == 'bottom_left' || attributes.position_placement == 'full_height_left') {\n placement = {bottom: (70 + this.attributes.widgetDimesions.value.wbottom) +\"px\", left: (65+this.attributes.widgetDimesions.value.wright) + \"px\"};\n leftPosition = true;\n } else if (attributes.position_placement == 'middle_left') {\n placement = {bottom: \"calc(50% + 35px)\", left: (65+this.attributes.widgetDimesions.value.wright) + \"px\"};\n leftPosition = true;\n } else if (attributes.position_placement == 'middle_right') {\n placement = {bottom: \"calc(50% + 35px)\", right: (65+this.attributes.widgetDimesions.value.wright) + \"px\"};\n }\n\n this.cont.massRestyle(placement);\n\n this.attributes = attributes;\n\n this.cont.tmpl = settings['html'].replace('{dev_type}',(this.attributes.isMobile === true ? 'lhc-mobile' : 'lhc-desktop'));\n this.cont.bodyId = 'need-help';\n \n if (this.cont.constructUIIframe('', this.attributes.staticJS['dir']) === null){\n return null;\n }\n \n // Content invisible untill media loads\n this.cont.elmDomDoc.body.style.display = \"none\";\n \n this.cont.elmDom.className += this.attributes.isMobile === true ? ' notranslate lhc-mobile' : ' notranslate lhc-desktop';\n\n this.cont.attachUserEventListener(\"click\", function (e) {\n attributes.eventEmitter.emitEvent('nhClicked', [{'event': e, 'sender' : 'closeButton'}]);\n attributes.eventEmitter.emitEvent('showWidget', [{'event': e}]);\n }, \"start-chat-btn\",'nhstrt');\n\n var _that = this;\n\n this.cont.attachUserEventListener(\"click\", function (a) {\n attributes.eventEmitter.emitEvent('nhClosed', [{'sender' : 'closeButton'}]);\n a.stopPropagation();\n _that.hide(true);\n }, \"close-need-help-btn\",'nhcls');\n\n if (settings.dimensions) {\n if (leftPosition == true && settings.dimensions['right']) {\n settings.dimensions['left'] = settings.dimensions['right'];\n delete settings.dimensions['right'];\n }\n this.cont.massRestyle(settings.dimensions);\n }\n\n this.cont.insertCssRemoteFile({onload: () => {this.loadStatus['main'] = true; this.checkLoadStatus()},crossOrigin : \"anonymous\", href : this.attributes.staticJS['widget_css']}, true);\n\n if (this.attributes.isMobile == true) {\n this.cont.insertCssRemoteFile({crossOrigin : \"anonymous\", href : this.attributes.staticJS['widget_mobile_css']});\n }\n\n if (this.attributes.theme) {\n this.cont.insertCssRemoteFile({onload: () => {this.loadStatus['theme'] = true; this.checkLoadStatus()}, id : \"lhc-theme-needhelp\", crossOrigin : \"anonymous\", href : this.attributes.LHC_API.args.lhc_base_url + '/widgetrestapi/themeneedhelp/' + this.attributes.theme + '?v=' + this.attributes.theme_v}, true);\n } else {\n this.loadStatus['theme'] = true;\n this.checkLoadStatus();\n }\n\n // Show need help only if status widget is loaded\n attributes.sload.subscribe((data) => {if(data){this.loadStatus['status'] = true; this.checkLoadStatus()}});\n\n if (!settings['ap']) {\n attributes.eventEmitter.addListener('showInvitation', () => {\n this.invitationOpen = true;\n this.hide();\n });\n\n attributes.eventEmitter.addListener('chatStarted', () => {\n this.hide(true);\n });\n\n attributes.eventEmitter.addListener('hideInvitation', () => {\n this.invitationOpen = false;\n this.show();\n });\n\n attributes.eventEmitter.addListener('cancelInvitation', () => {\n this.invitationOpen = false;\n this.show();\n });\n\n attributes.msgsnippet_status.subscribe((data) => {\n data == true && this.hide(true);\n });\n\n attributes.shidden.subscribe((data) => {\n data ? this.hide(false) : this.show();\n });\n }\n\n setTimeout(() => {\n\n this.delayProcessed = true;\n\n attributes.widgetStatus.subscribe((data) => {\n data == true ? (this.widgetOpen = true,this.hide()) : (this.widgetOpen = false,this.show());\n });\n\n attributes.onlineStatus.subscribe((data) => {\n if (data == false) {\n let needHide = this.hidden;\n this.hide();\n // Show next time only if it was not hidden already\n if (needHide === false) {\n this.hidden = false;\n }\n } else {\n this.show();\n }\n });\n\n }, settings.delay + this.attributes['status_delay']);\n\n attributes.eventEmitter.addListener('reloadWidget',() => {\n this.cont.insertCssRemoteFile({onload: () => {this.loadStatus['theme'] = true; this.checkLoadStatus()}, id : \"lhc-theme-needhelp\", crossOrigin : \"anonymous\", href : this.attributes.LHC_API.args.lhc_base_url + '/widgetrestapi/themeneedhelp/' + this.attributes.theme + '?v=' + Date.now()}, true);\n });\n\n }\n\n hide (persistent) {\n\n if (typeof persistent !== 'undefined' && persistent === true) {\n this.attributes.userSession.hnh = Math.round(Date.now() / 1000);\n this.attributes.storageHandler.storeSessionInformation(this.attributes.userSession.getSessionAttributes());\n this.hidden = true;\n }\n\n this.cont.hide();\n\n if (this.nhOpen == true) {\n this.attributes.eventEmitter.emitEvent('nhHide', []);\n }\n\n this.nhOpen = false;\n }\n\n show () {\n\n if (this.delayProcessed == false || this.hidden == true || this.widgetOpen == true || this.invitationOpen == true || this.attributes.onlineStatus.value == false) {\n return;\n }\n\n if (this.attributes.hideOffline === false) {\n this.cont.show();\n if (this.nhOpen == false) {\n this.attributes.eventEmitter.emitEvent('nhShow', []);\n }\n this.nhOpen = true;\n } else {\n this.cont.hide();\n if (this.nhOpen == true) {\n this.attributes.eventEmitter.emitEvent('nhHide', []);\n }\n this.nhOpen = false;\n }\n }\n}"],"names":["needhelpWidget","prefix","this","attributes","hidden","widgetOpen","invitationOpen","nhOpen","delayProcessed","cont","UIConstructorIframe","helperFunctions","zindex","width","height","position","display","loadStatus","main","theme","status","elmDomDoc","body","style","settings","placement","bottom","widgetDimesions","value","wbottom","right","wright","leftPosition","position_placement","left","massRestyle","tmpl","replace","isMobile","bodyId","constructUIIframe","staticJS","elmDom","className","attachUserEventListener","e","eventEmitter","emitEvent","_that","a","stopPropagation","hide","dimensions","insertCssRemoteFile","onload","checkLoadStatus","crossOrigin","href","id","LHC_API","args","lhc_base_url","theme_v","sload","subscribe","data","addListener","show","msgsnippet_status","shidden","setTimeout","widgetStatus","onlineStatus","needHide","delay","Date","now","persistent","userSession","hnh","Math","round","storageHandler","storeSessionInformation","getSessionAttributes","hideOffline"],"sourceRoot":""}