{"version":3,"file":"0e823b694cb68910a583.js","mappings":"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","sources":["webpack://LiveHelperChat/./src/util/proactiveChat.js"],"sourcesContent":["import {helperFunctions} from '../lib/helperFunctions';\nimport {domEventsHandler} from '../util/domEventsHandler';\n\nclass _proactiveChat {\n\n constructor() {\n this.params = {};\n this.timeoutStatuscheck = null;\n this.timeoutActivity = null;\n this.attributes = null;\n this.chatEvents = null;\n this.dynamicInvitations = [];\n\n this.iddleTimeoutActivity = null;\n this.checkMessageTimeout = null;\n this.nextRescheduleTimeout = null;\n this.initCall = true;\n this.inProgress = false;\n }\n\n setParams(params, attributes, chatEvents) {\n this.params = params;\n this.attributes = attributes;\n this.chatEvents = chatEvents;\n\n if (this.attributes.events.length > 0) {\n this.storeEvents(this.attributes.events);\n } else {\n this.initInvitation();\n }\n\n if (this.attributes.conversion != '') {\n this.storeConversion(this.attributes.conversion);\n }\n\n // check invitaiton then tag is added\n this.attributes.eventEmitter.addListener('tagAdded', () => {\n this.initInvitation({init: 0});\n });\n\n this.attributes.eventEmitter.addListener('eventAdded', () => {\n this.storeEvents(this.attributes.events);\n });\n\n this.attributes.eventEmitter.addListener('conversionAdded', () => {\n this.storeConversion(this.attributes.conversion);\n });\n\n this.attributes.eventEmitter.addListener('checkMessageOperator', () => {\n this.initInvitation({init: 0});\n });\n\n this.attributes.eventEmitter.addListener('endChat', () => {\n this.initInvitation({init: 0});\n });\n\n this.attributes.onlineStatus.subscribe((data) => {\n if (data == true) {\n this.initInvitation({init: 0});\n } else {\n const chatParams = this.attributes['userSession'].getSessionAttributes();\n if (!chatParams['id'] && this.attributes.proactive.invitation) {\n this.attributes.proactive = {};\n if (this.attributes.mainWidget.isLoaded !== false) {\n this.chatEvents.sendChildEvent('proactive', [{}]);\n }\n this.attributes.mainWidget.hideInvitation();\n this.attributes.eventEmitter.emitEvent('closeWidget', [{'sender' : 'closeButton'}]);\n }\n }\n });\n }\n\n showInvitation(params, init) {\n const chatParams = this.attributes['userSession'].getSessionAttributes();\n\n // Show invitation only if widget is not open\n if ((init === 0 && (this.attributes.widgetStatus.value === true && !this.attributes.mode == 'embed')) || chatParams['id']) {\n return;\n }\n\n if (params.inject_html && params.invitation) {\n var th = document.getElementsByTagName('head')[0];\n var s = document.createElement('script');\n s.setAttribute('type','text/javascript');\n s.setAttribute('src', this.attributes.LHC_API.args.lhc_base_url + this.attributes['lang'] + 'chat/htmlsnippet/'+params.invitation+'/inv/0/?ts='+Date.now());\n th.appendChild(s);\n }\n\n if (!params.only_inject) {\n this.attributes.proactive = params;\n\n if (this.attributes.mainWidget.isLoaded === false) {\n this.attributes.mainWidget.bootstrap();\n } else {\n this.chatEvents.sendChildEvent('proactive', [params]);\n }\n\n clearTimeout(this.checkMessageTimeout);\n clearTimeout(this.nextRescheduleTimeout);\n }\n }\n\n storeEvents(events) {\n const chatParams = this.attributes['userSession'].getSessionAttributes();\n if (!chatParams['id'] && this.attributes['onlineStatus'].value == true) {\n helperFunctions.makeRequest(this.attributes.LHC_API.args.lhc_base_url + this.attributes['lang'] + 'chat/logevent/(vid)/' + this.attributes.userSession.getVID(), {params: {'data' : JSON.stringify(events)}}, (data) => {\n this.initInvitation({init: 0});\n })\n }\n }\n\n storeConversion(conversion) {\n const chatParams = this.attributes['userSession'].getSessionAttributes();\n if (!chatParams['id'] && this.attributes['onlineStatus'].value == true) {\n helperFunctions.makeRequest(this.attributes.LHC_API.args.lhc_base_url + this.attributes['lang'] + 'widgetrestapi/logconversions/(vid)/' + this.attributes.userSession.getVID(), {params: {'data' : JSON.stringify(conversion)}}, (data) => {\n\n });\n }\n }\n\n initInvitation(paramsExecution) {\n\n if (this.inProgress == true) {\n return ;\n }\n\n clearTimeout(this.checkMessageTimeout);\n\n const chatParams = this.attributes['userSession'].getSessionAttributes();\n\n const init = (paramsExecution && paramsExecution['init'] === 0) ? 0 : 1;\n\n if (!chatParams['id'] && this.attributes['onlineStatus'].value == true) {\n\n this.inProgress = true;\n\n let params = {\n 'vid': this.attributes.userSession.getVID(),\n 'dep': this.attributes.department.join(',')\n };\n\n if (this.attributes.LHC_API.args.priority) {\n params['priority'] = this.attributes.LHC_API.args.priority;\n }\n\n if (this.attributes.LHC_API.args.operator) {\n params['operator'] = this.attributes.LHC_API.args.operator;\n }\n\n if (this.attributes['identifier']) {\n params['idnt'] = this.attributes['identifier']\n }\n\n if (this.attributes['tag']) {\n params['tag'] = this.attributes['tag']\n }\n\n if (this.attributes['langOverride']) {\n params['lang'] = this.attributes['langOverride']\n }\n\n params['l'] = encodeURIComponent(window.location.href.substring(window.location.protocol.length));\n params['dt'] = encodeURIComponent(document.title);\n params['init'] = this.initCall == true ? 1 : init;\n\n this.initCall = false;\n\n helperFunctions.makeRequest(this.attributes.LHC_API.args.lhc_base_url + this.attributes['lang'] + 'widgetrestapi/checkinvitation', {params: params}, (data) => {\n\n this.inProgress = false;\n \n if (data.invitation) {\n const params = {'vid_id' : data.vid_id, 'invitation' : data.invitation, 'inject_html' : data.inject_html, 'qinv' : data.qinv};\n setTimeout(() => {\n this.showInvitation(params, init);\n }, this.attributes.widgetStatus.value === true ? 0 : (data.delay ? data.delay + this.attributes['status_delay'] : this.attributes['status_delay']));\n } else {\n if (this.attributes.LHC_API.args.check_messages) {\n this.checkMessageTimeout = setTimeout(() => {\n this.initInvitation({init: 0});\n },this.params['interval'] * 1000);\n }\n }\n\n if (data.next_reschedule) {\n this.nextRescheduleTimeout = setTimeout(() => {\n this.initInvitation({init: 0});\n }, data.next_reschedule);\n }\n\n if (data.dynamic) {\n data.dynamic.forEach((item) => {\n this.dynamicInvitations.push(item.id);\n if (item.type === 1) {\n domEventsHandler.listen(document, 'mouseout', (e) => {\n e = e ? e : window.event;\n var from = e.relatedTarget || e.toElement;\n if (!from || from.nodeName == \"HTML\") {\n this.showInvitation({'vid_id' : data.vid_id, 'invitation' : item.id, 'inject_html' : item.inject_html, 'qinv' : data.qinv, 'only_inject' : item.only_inject});\n if (!item.every_time) {\n domEventsHandler.unlisten('lhc_inv_mouse_out_'+item.id);\n }\n }\n }, 'lhc_inv_mouse_out_' + item.id);\n } else if (item.type === 2) {\n\n var iddleTimeout = () => {\n\n this.showInvitation({'vid_id' : data.vid_id, 'invitation' : item.id, 'inject_html' : item.inject_html, 'qinv' : data.qinv, 'only_inject' : item.only_inject});\n\n clearTimeout(this.iddleTimeoutActivity);\n\n if (!item.every_time) {\n ['mousemove','mousedown','click','scroll','keypress','load'].forEach((element) => {\n domEventsHandler.unlisten('lhc_inv_iddl_win_'+element);\n });\n\n ['mousemove','scroll','touchstart','touchend'].forEach((element) => {\n domEventsHandler.unlisten('lhc_inv_iddl_doc_'+element);\n });\n }\n };\n\n this.iddleTimeoutActivityReset = () => {\n clearTimeout(this.iddleTimeoutActivity);\n this.iddleTimeoutActivity = setTimeout( () => { iddleTimeout(); }, item.iddle_for *1000);\n }\n\n this.iddleTimeoutActivityReset();\n\n ['mousemove','mousedown','click','scroll','keypress','load'].forEach((event) => {\n domEventsHandler.listen(window, event, this.iddleTimeoutActivityReset, 'lhc_inv_iddl_win_'+event);\n });\n\n ['mousemove','scroll','touchstart','touchend'].forEach((event) => {\n domEventsHandler.listen(document, event, this.iddleTimeoutActivityReset, 'lhc_inv_iddl_doc_'+event);\n });\n }\n })\n }\n });\n }\n }\n}\n\nconst proactiveChat = new _proactiveChat();\nexport {proactiveChat};\n\n"],"names":["proactiveChat","_createClass","_proactiveChat","_classCallCheck","this","params","timeoutStatuscheck","timeoutActivity","attributes","chatEvents","dynamicInvitations","iddleTimeoutActivity","checkMessageTimeout","nextRescheduleTimeout","initCall","inProgress","key","value","_this","events","length","storeEvents","initInvitation","conversion","storeConversion","eventEmitter","addListener","init","onlineStatus","subscribe","data","getSessionAttributes","proactive","invitation","mainWidget","isLoaded","sendChildEvent","hideInvitation","emitEvent","chatParams","widgetStatus","mode","inject_html","th","document","getElementsByTagName","s","createElement","setAttribute","LHC_API","args","lhc_base_url","Date","now","appendChild","only_inject","bootstrap","clearTimeout","_this2","helperFunctions","makeRequest","userSession","getVID","JSON","stringify","paramsExecution","_this3","department","join","priority","operator","encodeURIComponent","window","location","href","substring","protocol","title","vid_id","qinv","setTimeout","showInvitation","delay","check_messages","next_reschedule","dynamic","forEach","item","push","id","type","domEventsHandler","listen","e","from","event","relatedTarget","toElement","nodeName","every_time","unlisten","iddleTimeoutActivityReset","element","iddle_for"],"sourceRoot":""}