1 2'use strict';(function($){var version='3.5.8';var main;var global;var upload_target;var admin=!1;var tickets=!1;var timeout=!1;var timeout_label_date=[!1,!1];var interval=!1;var timeout_debounce=[];var previous_search;var sb_current_user=!1;var chat;var chat_editor;var chat_textarea;var chat_header;var chat_status;var chat_emoji;var chat_scroll_area;var label_date;var label_date_items=!1;var label_date_show=!1;var label_date_history=[9999999,''];var document_title=document.title;var CHAT_SETTINGS={};var mobile=$(window).width()<429;var today=new Date();var bot_id;var force_action='';var dialogflow_human_takeover;var agents_online=!1;var ND='undefined';var cookies_supported=!0;var utc_offset=(new Date()).getTimezoneOffset()*60000;var cloud_data=!1;var articles_page=!1;var visibility_status='visible';var ajax_calls;$.fn.extend({manualExpandTextarea:function(){var t=this[0];t.style.height="auto",t.style.maxHeight="25px";window.getComputedStyle(t);t.style.height=(t.scrollHeight>350?350:t.scrollHeight)+"px",t.style.maxHeight="",$(t).trigger("textareaChanged")},autoExpandTextarea:function(){var t=this[0];t.addEventListener("input",function(e){$(t).manualExpandTextarea()},!1)}});(function(){var t=[].slice;String.prototype.autoLink=function(){var n,a,r,i,c,e,l;return e=/(^|[\s\n]|<[A-Za-z]*\/?>)((?:https?|ftp):\/\/[\-A-Z0-9+\u0026\u2019@#\/%?=()~_|!:,.;]*[\-A-Z0-9+\u0026@#\/%=~()_|])/gi,0<(c=1<=arguments.length?t.call(arguments,0):[]).length?(i=c[0],n=i.callback,r=function(){var t;for(a in t=[],i)l=i[a],"callback"!==a&&t.push(" "+a+"='"+l+"'");return t}().join(""),this.replace(e,function(t,a,i){return""+a+(("function"==typeof n?n(i):void 0)||"<a href='"+i+"'"+r+">"+i+"</a>")})):this.replace(e,"$1<a href='$2'>$2</a>")}}).call(this);var SBF={ajax:function(data,onSuccess=!1){if(ajax_calls){ajax_calls[0].push(data);ajax_calls[1].push(onSuccess)}else{ajax_calls=[[data],[onSuccess]];setTimeout(function(){let onSuccessCalls=ajax_calls[1];let data_auto={'login-cookie':SBF.loginCookie()} 3if(activeUser()){data_auto.user_id=activeUser().id} 4if(typeof SB_LANG!=ND){data_auto.language=SB_LANG} 5if(cloud_data){data_auto.cloud=cloud_data} 6$.ajax({method:'POST',url:SB_AJAX_URL,data:$.extend({function:'ajax_calls',calls:ajax_calls[0]},data_auto)}).done((response)=>{let result;if(Array.isArray(response)){result=response}else{try{result=JSON.parse(response)}catch(e){SBChat.is_busy_update=!1;SBChat.busy(!1);console.log(response);SBF.error(response.length>500?response.substr(0,500)+'... Check the console for more details.':response,`SBF.ajax.${data['function']}`);return}} 7for(var i=0;i<result.length;i++){let result_sub=result[i];if(!Array.isArray(result_sub))result_sub=['','','',result_sub];if(result_sub[0]=='success'){onSuccess=onSuccessCalls[i];if(onSuccess)onSuccess(result_sub[1]);}else if(SBF.errorValidation(result_sub)){if(onSuccess)onSuccess(result_sub);}else{if(admin&&result_sub[1]=='security-error'){setTimeout(()=>{SBF.reset()},1000)} 8SBChat.is_busy_update=!1;SBChat.busy(!1);SBF.error(result_sub[1]+(SBF.null(result_sub[2])?'':'\nFunction name: '+result_sub[2])+(SBF.null(result_sub[3])?'':'\nError message: '+(typeof result_sub[3]=='string'?result_sub[3]:('error' in result_sub[3]&&'message' in result_sub[3].error?`${result_sub[3]['error']['message']} in function '${result_sub[3]['error']['function']}'`:result_sub[3]))),`SBF.ajax.${data['function']}`)}}});ajax_calls=!1},100)}},cors:function(method='GET',url,onSuccess){let xhr=new XMLHttpRequest();if('withCredentials' in xhr){xhr.open(method,url,!0)}else if(typeof XDomainRequest!=ND){xhr=new XDomainRequest();xhr.open(method,url)}else{return!1} 9xhr.onload=function(){onSuccess(xhr.responseText)};xhr.onerror=function(){return!1};xhr.send()},upload:function(form,onSuccess){if(cloud_data)form.append('cloud',cloud_data);jQuery.ajax({url:SB_URL+'/include/upload.php',cache:!1,contentType:!1,processData:!1,data:form,type:'POST',success:function(response){onSuccess(response)}})},UTC:function(datetime){return new Date(datetime).getTime()-utc_offset},null:function(obj){if(typeof(obj)!==ND&&obj!==null&&obj!=='null'&&obj!==!1&&(obj.length>0||typeof(obj)=='number'||typeof(obj.length)==ND)&&obj!==ND)return!1;else return!0},deactivateAll:function(){global.find('.sb-popup, .sb-tooltip, .sb-list .sb-menu, .sb-select ul').sbActive(!1)},deselectAll:function(){if(window.getSelection){window.getSelection().removeAllRanges()}else if(document.selection){document.selection.empty()}},getURL:function(name=!1,url=!1){if(!url)url=location.search;if(name==!1){var c=url.split('?').pop().split('&');var p={};for(var i=0;i<c.length;i++){var d=c[i].split('=');p[d[0]]=SBF.escape(d[1])} 10return p} 11if(url.indexOf('?')>0){url=url.substr(0,url.indexOf('?'))} 12return SBF.escape(decodeURIComponent((new RegExp('[?|&]'+name+'='+'([^&;]+?)(&|#|;|$)').exec(url)||[,""])[1].replace(/\+/g,'%20')||""))},URL:function(){return window.location.href.substr(0,window.location.href.indexOf('?'))}
12,stringToSlug:function(string){string=string.trim();string=string.toLowerCase();var from="åà áãäâèéëêìÃïîòóöôùúüûñç·/_,:;";var to="aaaaaaeeeeiiiioooouuuunc------";for(var i=0,l=from.length;i<l;i++){string=string.replace(new RegExp(from.charAt(i),'g'),to.charAt(i))} 13return string.replace(/[^a-z0-9 -]/g,'').replace(/\s+/g,'-').replace(/-+/g,'-').replace(/^-+/,'').replace(/-+$/,'').replace(/ /g,'')},slugToString:function(string){string=string.replace(/_/g,' ').replace(/-/g,' ');return string.charAt(0).toUpperCase()+string.slice(1)},random:function(){let chars='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';let result='';for(var i=5;i>0;--i)result+=chars[Math.floor(Math.random()*62)];return result},isAgent:function(user_type){return user_type=='agent'||user_type=='admin'||user_type=='bot'},beautifyTime:function(datetime,extended=!1,future=!1){let date;if(datetime=='0000-00-00 00:00:00')return'';if(datetime.indexOf('-')>0){let arr=datetime.split(/[- :]/);date=new Date(arr[0],arr[1]-1,arr[2],arr[3],arr[4],arr[5])}else{let arr=datetime.split(/[. :]/);date=new Date(arr[2],arr[1]-1,arr[0],arr[3],arr[4],arr[5])} 14let date_string=new Date(Date.UTC(date.getFullYear(),date.getMonth(),date.getDate(),date.getHours(),date.getMinutes(),date.getSeconds()));let diff_days=Math.round(((new Date())-date_string)/(1000*60*60*24))*(future?-1:1);let days=[sb_('Sunday'),sb_('Monday'),sb_('Tuesday'),sb_('Wednesday'),sb_('Thursday'),sb_('Friday'),sb_('Saturday')];let time=date_string.toLocaleTimeString(navigator.language,{hour:'2-digit',minute:'2-digit'});if(time.charAt(0)==='0'&&(time.includes('PM')||time.includes('AM')))time=time.substring(1);if(diff_days<1){return extended?`<span>${sb_('Today')}</span> <span>${time}</span>`:`<span data-today>${time}</span>`}else if(diff_days<7){return `<span>${days[date_string.getDay()]}</span>${extended ? `<span>${time}</span>` : ''}`}else{return `<span>${date_string.toLocaleDateString()}</span>${extended ? `<span>${time}</span>` : ''}`}},unix:function(datetime){let arr=datetime.split(/[- :]/);return Date.UTC(arr[0],arr[1]-1,arr[2],arr[3],arr[4],arr[5])},getLocationTimeString:function(details,onSuccess){if('timezone' in details){let location={};location.timezone=details.timezone.value;location.country='country' in details?details.country.value:location.timezone.split('/')[0].replace(/_/g,' ');location.city='city' in details?details.city.value:location.timezone.split('/')[1].replace(/_/g,' ');SBF.cors('GET','https://worldtimeapi.org/api/timezone/'+location.timezone,function(response){response=JSON.parse(response);if(SBF.null(response)||!SBF.null(response.error)){SBF.error(response,'SBF.getLocationTimeString()');onSuccess(responseonSuccess)}else{let datetime=response.datetime.replace('T',' ');onSuccess(`${new Date(datetime.substr(0, datetime.indexOf('.'))).toLocaleString([], { hour: '2-digit', minute: '2-digit' })} ${sb_('in')} ${location['city'] ? location['city'] : ''}${location['country'] ? ', ' + location['country'] : ''}`)}})}},dateDB:function(date){if(date=='now'){date=(new Date).toISOString().replace('T',' ');if(date.indexOf('.')>0){date=date.substr(0,date.indexOf('.'))} 15return date}else{return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()} ${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`}},updateUsersActivity:function(user_id,return_user_id,onSuccess){if(SBPusher.active){onSuccess(SBPusher.online_ids.includes(return_user_id)?'online':'offline')}else{SBF.ajax({function:'update-users-last-activity',user_id:user_id,return_user_id:return_user_id,check_slack:!admin&&CHAT_SETTINGS['slack-active']},(response)=>{if(response==='online'){onSuccess('online')}else{onSuccess('offline')}})}},search:function(search,searchFunction){search=search.toLowerCase();if(search==previous_search){global.find('.sb-search-btn i').sbLoading(!1);return} 16clearTimeout(timeout);timeout=setTimeout(function(){previous_search=search;searchFunction()},200)},searchClear:function(icon,onSuccess){let search=$(icon).next().val();if(search){$(icon).next().val('');onSuccess()}},error:function(message,function_name){if(admin&&SBAdmin.is_logout)return;if(message instanceof Error)message=message.message;if(message[message.length-1]=='.')message=message.slice(0,-1);if(message.includes('Support Board Error'))message=message.replace('Support Board Error ','').replace(']:',']');if(admin&&message&&!function_name.includes('update-users-last-activity')&&!function_name.startsWith('security-error'))SBAdmin.dialog(`[Error] [${function_name}] ${message}. Check the console for more details.`,'info',!1,'error');global.find('.sb-loading').sbLoading(!1);SBF.event('SBError',{message:message,function_name:function_name});throw new Error(`Support Board Error [${function_name}]: ${message}.`)},errorValidation:function(response,code=!0){return Array.isArray(response)&&response[0]==='val
16idation-error'&&(code===!0||response[1]==code)},loginForm:function(button,area=!1,onSuccess=!1){button=$(button);if(!button.sbLoading()){if(area===!1)area=button.closest('.sb-rich-login');else area=$(area);let email=$.trim(area.find('#email input').val());let password=$.trim(area.find('#password input').val());if(email==''||password==''){area.find('.sb-info').html(sb_('Please insert email and password.')).sbActive(!0)}else{SBF.ajax({function:'login',email:email,password:password},(response)=>{if(response&&Array.isArray(response)){if(!admin&&this.isAgent(response[0].user_type)){SBForm.showErrorMessage(area,'You cannot sign in as an agent.');SBChat.scrollBottom()}else{let user=new SBUser(response[0]);user.set('conversation_id',SBChat.conversation?SBChat.conversation.id:!1);this.loginCookie(response[1]);this.event('SBLoginForm',user);if(onSuccess)onSuccess(response);} 17if(SBF.setting('wp-users-system')=='wp'){SBApps.wordpress.ajax('wp-login',{user:email,password:password})}}else{area.find('.sb-info').html(sb_('Invalid email or password.')).sbActive(!0);if(!admin)SBChat.scrollBottom();} 18button.sbLoading(!1)});area.find('.sb-info').html('').sbActive(!1);button.sbLoading(!0)}}},loginCookie:function(value=!1){if(value===!1)return this.cookie('sb-login')?this.cookie('sb-login'):storage('login');if(CHAT_SETTINGS.cloud){storage('login',value)}else{this.cookie('sb-login',value,3650,'set')}},login:function(email='',password='',user_id='',token='',onSuccess=!1){SBF.ajax({function:'login',email:email,password:password,user_id:user_id,token:token},(response)=>{if(response!=!1&&Array.isArray(response)){this.loginCookie(response[1]);if(onSuccess)onSuccess(response);return!0}else{return!1}})},logout:function(reload=!0){SBChat.stopRealTime();this.cookie('sb-login','','',!1);this.cookie('sb-cloud','','',!1);storage('open-conversation','');storage('login','');SBChat.conversations=!1;activeUser(!1);if(typeof sb_beams_client!==ND){sb_beams_client.stop()} 19SBF.ajax({function:'logout'},()=>{SBF.event('SBLogout');if(reload){setTimeout(()=>{location.reload()},500)}})},activeUser:function(){return activeUser()},getActiveUser:function(database=!1,onSuccess){let app_login=SBApps.login();if(!app_login&&(storage('wp-login')||storage('whmcs-login')||storage('perfex-login')||storage('aecommerce-login'))){this.cookie('sb-login','','','delete');activeUser(!1);storage('login','');storage('wp-login','');storage('whmcs-login','');storage('perfex-login','');storage('aecommerce-login','')} 20SBF.ajax({function:'get-active-user',db:database,login_app:JSON.stringify(app_login),user_token:SBF.getURL('token')},(response)=>{if(!response){onSuccess();return!1}else{if('cookie' in response)SBF.loginCookie(response.cookie);if('user_type' in response){if(!admin&&SBF.isAgent(response.user_type)){let message='You are logged in as both agent and user. Logout or use another browser, Incognito or Private mode, to login as user. Force a logout by running the function SBF.reset() in the console.';if(!storage('double-login-alert')){storage('double-login-alert',!0);alert(message)} 21console.warn('Support Board: '+message);SBF.event('SBDoubleLoginError')}else{activeUser(new SBUser(response,'phone' in response?{phone:response.phone}:{}));SBPusher.start();if(app_login){storage(app_login[1]+'-login',!0)} 22onSuccess();SBF.event('SBActiveUserLoaded',response)}}}})},reset:function(){let cookies=['sb-login','sb-cloud','sb-dialogflow-disabled'];for(var i=0;i<cookies.length;i++){this.cookie(cookies[i],'',0,!1)} 23try{localStorage.removeItem('support-board')}catch(e){} 24this.logout()},lightbox:function(content){let lightbox=$(admin?global:main).find('.sb-lightbox-media');lightbox.sbActive(!0).find(' > div').html(content);if(admin)SBAdmin.open_popup=lightbox},storage:function(key,value=ND){try{if(typeof localStorage==ND)return!1}catch(e){return!1} 25let settings=localStorage.getItem('support-board');if(settings===null){settings={}}else{settings=JSON.parse(settings)} 26if(value===ND){return key in settings?settings[key]:!1}else{if(!value){delete settings[key]}else{settings[key]=value} 27localStorage.setItem('support-board',JSON.stringify(settings))}},storageTime:function(key,hours=!1){if(hours===!1){storage(key,today.getTime())}
27else{return storage(key)==!1||(today.getTime()-storage(key))>(3600000*hours)}},cookie:function(name,value=!1,expiration_days=!1,action='get',seconds=!1){let cookie_https=location.protocol=='https:'?'SameSite=None;Secure;':'';let settings=window[admin?'SB_ADMIN_SETTINGS':'CHAT_SETTINGS'];let domain=settings&&settings['cookie-domain']?'domain='+settings['cookie-domain']+';':'';if(action=='get'){if(!cookies_supported){return this.storage(name)} 28let cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=cookies[i];while(cookie.charAt(0)==' '){cookie=cookie.substring(1)} 29if(cookie.indexOf(name)==0){let value=cookie.substring(name.length+1,cookie.length);return this.null(value)?!1:value}} 30return!1}else if(action=='set'){if(!cookies_supported){this.storage(name,value)}else{let date=new Date();date.setTime(date.getTime()+(expiration_days*(seconds?1:86400)*1000));document.cookie=name+"="+value+";expires="+date.toUTCString()+";path=/;"+cookie_https+domain}}else if(this.cookie(name)){if(!cookies_supported){this.storage(name,'')}else{document.cookie=name+"="+value+";expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/;"+cookie_https+domain}}},setting:function(key){return typeof CHAT_SETTINGS!==ND&&key in CHAT_SETTINGS?CHAT_SETTINGS[key]:!1},shortcode:function(shortcode){return SBRichMessages.shortcode(shortcode)},event:function(name,parameters){$(document).trigger(name,parameters);let webhooks=admin?(typeof SB_ADMIN_SETTINGS===ND?!1:SB_ADMIN_SETTINGS.webhooks):CHAT_SETTINGS.webhooks;let webhooks_list={SBSMSSent:'sms-sent',SBLoginForm:'login',SBRegistrationForm:'registration',SBUserDeleted:'user-deleted',SBNewMessagesReceived:'new-message',SBNewConversationReceived:'new-conversation',SBSlackMessageSent:'slack-message-sent',SBMessageDeleted:'message-deleted',SBRichMessageSubmit:'rich-message',SBNewEmailAddress:'new-email-address'};if(webhooks&&name in webhooks_list){if(webhooks!==!0){if(!Array.isArray(webhooks))webhooks=webhooks.replace(/ /g,'').split(',');if(!webhooks.includes(webhooks_list[name]))return} 31SBF.ajax({function:'webhooks',function_name:name,parameters:parameters})}},translate:function(string){if((!admin&&SBF.null(CHAT_SETTINGS))||(admin&&typeof SB_TRANSLATIONS===ND))return string;let translations=admin?SB_TRANSLATIONS:CHAT_SETTINGS.translations;if(translations&&string in translations){return translations[string]==''?string:translations[string]}else{return string}},escape:function(string){if(!string)return string;return string.replaceAll('<script','<script').replaceAll('</script','</script').replaceAll('javascript:','').replaceAll('onclick=','').replaceAll('onerror=','')},visibilityChange:function(visibility=''){visibility_status=visibility;if(visibility=='hidden'){if(!admin){SBChat.stopRealTime()} 32SBChat.tab_active=!1}else{if(activeUser()&&!admin){SBChat.startRealTime()} 33SBChat.tab_active=!0;clearInterval(interval);clearInterval(SBChat.audio_interval);if(SBChat.conversation)SBChat.conversation.updateMessagesStatus();if(admin&&typeof SBAdmin!==ND)SBAdmin.conversations.hideNewLabel();document.title=document_title}},settingsStringToArray:function(string){if(this.null(string))return[];let result=[];string=string.split(',');for(var i=0;i<string.length;i++){let values=string[i].split(':');result[values[0]]=values[1]=='false'?!1:values[1]=='true'?!0:values[1]} 34return result},openWindow:function(link,width=550,height=350){let left=(screen.width/2)-(width/2);let top=(screen.height/2)-(height/2);window.open(link,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width='+width+',height='+height+', top='+top+', left='+left);return!1},convertUTCDateToLocalDate:function(date,UTCoffset=0){date=new Date(date);date=new Date(date.getTime()+UTCoffset*3600000);return new Date(date.getTime()+utc_offset*-1)},loadResource:function(url,script=!1){let head=document.getElementsByTagName('head')[0];let resource=document.createElement(script?'script':'link');if(script){resource.src=url+'?v='+version}else{resource.id='support-board';resource.rel='stylesheet';resource.type='text/css';resource.href=url+'?v='+version;resource.media='all'} 35head.appendChild(resource)}
35,debounce:function(bounceFunction,id,interval=500){if(!(id in timeout_debounce)){timeout_debounce[id]=!0;bounceFunction();setTimeout(()=>{delete timeout_debounce[id]},interval)}}} 36var SBPusher={channels:{},channels_presence:[],active:!1,pusher:!1,started:!1,pusher_beams:!1,initialized:!1,online_ids:[],init_push_notifications:!1,sw:!1,init:function(onSuccess=!1){if(SBPusher.active){if(this.pusher){return onSuccess?onSuccess():!0}else if(onSuccess){$(window).one('SBPusherInit',()=>{onSuccess()})}else return;this.initialized=!0;$.getScript('https://js.pusher.com/7.0/pusher.min.js',()=>{this.pusher=new Pusher(admin?SB_ADMIN_SETTINGS['pusher-key']:CHAT_SETTINGS['pusher-key'],{cluster:admin?SB_ADMIN_SETTINGS['pusher-cluster']:CHAT_SETTINGS['pusher-cluster'],authEndpoint:SB_URL+'/include/pusher.php',auth:{params:{login:SBF.loginCookie()}}});SBF.event('SBPusherInit')})}},initPushNotifications:function(){if(activeUser()||admin){$.getScript('https://js.pusher.com/beams/1.0/push-notifications-cdn.js',()=>{window.navigator.serviceWorker.ready.then((serviceWorkerRegistration)=>{this.pusher_beams=new PusherPushNotifications.Client({instanceId:admin?SB_ADMIN_SETTINGS['push-notifications-id']:CHAT_SETTINGS['push-notifications-id'],serviceWorkerRegistration:serviceWorkerRegistration,});this.pusher_beams.start().then(()=>this.pusher_beams.setDeviceInterests(admin?[SB_ACTIVE_AGENT.id,'agents']:[activeUser().id,'users'])).catch(console.error);this.init_push_notifications=!1})})}},initServiceWorker:function(){if('serviceWorker' in navigator){navigator.serviceWorker.register(admin||typeof SB_CLOUD_SW!='undefined'?SB_URL.replace('/script','')+'/sw.js?v='+version:CHAT_SETTINGS['push-notifications-url']+'?v='+version).then((registration)=>{registration.update();this.sw=registration}).catch(function(error){console.warn(error)});navigator.serviceWorker.onmessage=function(e){if(admin){if(e.data.conversation_id){SBAdmin.conversations.openConversation(e.data.conversation_id,e.data.user_id);SBAdmin.conversations.update()}else if(e.data.user_id){SBAdmin.profile.show(e.data.user_id);SBChat.playSound()}}else if(e.data=='sb-open-chat'){SBChat.open()}}}},start:function(){if(!admin&&!this.started&&activeUser()){if(this.active){this.init(()=>{this.event('client-typing',(response)=>{if(response.user_id==SBChat.agent_id&&SBChat.conversation&&response.conversation_id==SBChat.conversation.id){SBChat.typing(-1,'start');clearTimeout(timeout);timeout=setTimeout(()=>{SBChat.typing(-1,'stop')},1000)}});this.event('new-message',(response)=>{if(response&&activeUser()&&!SBF.null(response.conversation_id)&&(!activeUser().getConversationByID(response.conversation_id)&&(!SBChat.conversation||SBChat.conversation.id!=response.conversation_id))){SBChat.updateConversations()}else{SBChat.update()}});this.presence(1,()=>{this.started=!0;SBChat.automations.run_all()})})} 37if(CHAT_SETTINGS['push-notifications']){if(typeof Notification!=ND&&Notification.permission=='granted')this.initPushNotifications();else this.init_push_notifications=!0}}},subscribe:function(channel_name,onSuccess=!1){if(!this.pusher)return this.init(()=>{this.subscribe(channel_name,onSuccess)});channel_name=this.cloudChannelRename(channel_name);let channel=this.pusher.subscribe(channel_name);channel.bind('pusher:subscription_error',(error)=>{return console.log(error)});channel.bind('pusher:subscription_succeeded',()=>{this.channels[channel_name]=channel;if(onSuccess)onSuccess();})},event:function(event,callback,channel='private-user-'+activeUser().id){if(!this.pusher)return this.init(()=>{this.event(event,callback,channel)});let channel_original=channel;channel=this.cloudChannelRename(channel);if(channel in this.channels){this.channels[channel].unbind(event);this.channels[channel].bind(event,(data)=>{callback(data)})}else this.subscribe(channel_original,()=>{this.event(event,callback,channel_original)})},trigger:function(event,data={},channel='private-user-'+activeUser().id){if(event.indexOf('client-')==0){return this.channels[this.cloudChannelRename(channel)].trigger(event,data)}else{SBF.ajax({function:'pusher-trigger',channel:channel,event:event,data:data},(response)=>{return response})}},presence:function(index=1,onSuccess){if(!this.pusher)return this.init(()=>{this.presence()});
37let channel=this.pusher.subscribe(this.cloudChannelRename('presence-'+index));channel.bind('pusher:subscription_succeeded',(members)=>{if(members.count>98)return this.subscribe(index+1);members.each((member)=>{if(this.presenceCheck(member)){this.online_ids.push(member.id)}});SBChat.updateUsersActivity();if(onSuccess)onSuccess();}) 38channel.bind('pusher:subscription_error',(error)=>{return console.log(error)});channel.bind('pusher:member_added',(member)=>{if(this.presenceCheck(member)){this.presenceAdd(member.id)} 39if(admin)SBAdmin.users.onlineUserNotification(member);});channel.bind('pusher:member_removed',(member)=>{this.presenceRemove(member.id)});this.channels_presence.push(channel);if(!admin&&CHAT_SETTINGS['slack-active']){this.event('add-user-presence',(response)=>{this.presenceAdd(response.agent_id)});SBF.ajax({function:'slack-presence',list:!0},(response)=>{for(var i=0;i<response.length;i++){this.presenceAdd(response[i])} 40SBChat.updateUsersActivity()})}},presenceCheck:function(member){let agent=SBF.isAgent(member.info.user_type);return((admin&&!agent)||(!admin&&agent))&&!this.online_ids.includes(member.id)},presenceAdd:function(user_id){if(typeof user_id!=ND&&!this.online_ids.includes(user_id)){this.online_ids.push(user_id);this.presenceUpdateAdmin(user_id);SBChat.updateUsersActivity()}},presenceRemove:function(user_id){if(typeof user_id==ND)return;let index=this.online_ids.indexOf(user_id);if(index!==-1){this.online_ids.splice(index,1);this.presenceUpdateAdmin(user_id);SBChat.updateUsersActivity()}else if(admin){global.find(`.sb-conversation-busy[data-agent="${user_id}"]`).remove()}},presenceUnsubscribe:function(){for(var i=0;i<this.channels_presence.length;i++){this.channels_presence[i].unsubscribe(this.cloudChannelRename('presence-'+(i+1)))}},presenceUpdateAdmin:function(user_id){if(admin){if(global.find('.sb-area-users.sb-active').length)SBAdmin.users.update();if(activeUser()&&activeUser().id==user_id)SBAdmin.users.updateUsersActivity();}},pushNotification:function(message){let icon=admin?SB_ACTIVE_AGENT.profile_image:activeUser().image;SBF.ajax({function:'push-notification',title:admin?SB_ACTIVE_AGENT.full_name:activeUser().name,message:(new SBMessage()).strip(message),icon:icon.indexOf('user.svg')>0?CHAT_SETTINGS['notifications-icon']:icon,interests:SBChat.getRecipientUserID(),conversation_id:SBChat.conversation==!1?!1:SBChat.conversation.id},(response)=>{return response})},cloudChannelRename:function(channel){return(CHAT_SETTINGS.cloud||(admin&&SB_ADMIN_SETTINGS.cloud))?channel+'-'+(admin?SB_ADMIN_SETTINGS.cloud.cloud_user_id:CHAT_SETTINGS.cloud.cloud_user_id):channel}} 41window.SBF=SBF;window.SBPusher=SBPusher;window.sb_current_user=sb_current_user;$.fn.sbActive=function(show=-1){if(show===-1)return $(this).hasClass('sb-active');$(this).setClass('sb-active',show);return this};$.fn.sbLoading=function(value='check'){if(value=='check'){return $(this).hasClass('sb-loading')}else{$(this).setClass('sb-loading',value)} 42return this} 43$.fn.sbTogglePopup=function(button=!1){let showed=!0;if(admin)SBAdmin.open_popup=!1;if($(this).sbActive()){$(this).sbActive(!1);global.removeClass('sb-popup-active');showed=!1}else{global.addClass('sb-popup-active');global.find('.sb-popup').sbActive(!1);if(button)$(this).css('left',$(button).offset().left+15).sbActive(!0);if(admin)setTimeout(()=>{SBAdmin.open_popup=this},500);SBF.deselectAll()} 44return showed};$.fn.sbUploadFiles=function(onSuccess){let files=$(this).prop('files');for(var i=0;i<files.length;i++){let file=files[i];let form=new FormData();form.append('file',file);SBF.upload(form,onSuccess)} 45$(this).value=''} 46$.fn.setProfile=function(name=!1,profile_image=!1){if(SBF.null(name))name=activeUser()?activeUser().name:'';if(SBF.null(profile_image))profile_image=activeUser()?activeUser().image:SB_URL+'/media/user.svg';$(this).find('img').attr('src',profile_image);$(this).find('.sb-name').html(name);return this} 47$.fn.setClass=function(class_name,add=!0){if(add){$(this).addClass(class_name)}else{$(this).removeClass(class_name)} 48return this} 49function sbDelta(e){let delta=e.originalEvent.wheelDelta;if(typeof delta==ND){delta=e.originalEvent.deltaY} 50if(typeof delta==ND){delta=e.originalEvent.detail*-1} 51return delta} 52function loading(element){if($(element).sbLoading())return!0;else $(element).sbLoading(!0);return!1} 53function storage(key,value=ND){return SBF.storage(key,value)} 54function sb_(string){return SBF.translate(string)} 55function activeUser(value=-1){if(value===-1){return window.sb_current_user}else{window.sb_current_user=value}} 56function setAudio(){let volume=admin?SB_ADMIN_SETTINGS.sound.volume:CHAT_SETTINGS.sound.volume;if(SBChat.audio)SBChat.audio.volume=volume;if(SBChat.audio_out)SBChat.audio_out.volume=volume} 57class SBUser{constructor(details={},extra={}){this.details=details;this.extra=extra;this.conversations=[];this.processArray(details)} 58get id(){return this.get('id')==''?this.get('user_id'):this.get('id')} 59get type(){return this.get('user_type')} 60get name(){return'first_name' in this.details?this.details.first_name+(this.details.last_name?' '+this.details.last_name:''):''} 61get nameBeautified(){return'last_name' in this.details&&this.details.last_name.charAt(0)!='#'?this.name:CHAT_SETTINGS['visitor-default-name']} 62get image(){return this.get('profile_image')} 63get language(){let language=this.getExtra('language');if(!language)language=this.getExtra('browser_language');return!language?'':language.value.toLowerCase()}
64get(id){if(id in this.details&&!SBF.null(this.details[id]))return this.details[id];else return''} 65getExtra(id){if(id in this.extra&&!SBF.null(this.extra[id]))return this.extra[id];else return''} 66set(id,value){this.details[id]=value} 67setExtra(id,value){this.extra[id]=value} 68processArray(details){if(details&&'details' in details){for(var i=0;i<details.details.length;i++){this.setExtra(details.details[i].slug,details.details[i])} 69delete details.details;this.details=details}} 70update(onSuccess){if(this.id){SBF.ajax({function:'get-user',user_id:this.id,extra:!0},(response)=>{this.processArray(response);onSuccess()})}else{SBF.error('Missing user ID','SBUser.update')}} 71getConversations(onSuccess=!1,exclude_id){if(this.id){SBF.ajax({function:'get-user-conversations',user_id:this.id,exclude_id:exclude_id,agent:SBF.isAgent(this.type)},(response)=>{let conversations=[];for(var i=0;i<response.length;i++){let status=response[i].conversation_status_code;if(status!=3||!CHAT_SETTINGS['close-chat']){let conversation=new SBConversation([new SBMessage(response[i])],{id:response[i].conversation_id,conversation_status_code:status,department:response[i].department,agent_id:response[i].agent_id,title:response[i].title});conversations.push(conversation)}} 72this.conversations=conversations;if(onSuccess)onSuccess(conversations);})}else{SBF.error('Missing user ID','SBUser.getConversations')}} 73getConversationsCode(conversations=!1){let code='';let active_conversation_id=SBChat.conversation?SBChat.conversation.id:-1;if(!conversations)conversations=this.conversations;for(var i=0;i<conversations.length;i++){if(conversations[i]instanceof SBConversation){code+=`<li ${active_conversation_id == conversations[i].id ? 'class="sb-active" ' : ''}data-conversation-status="${conversations[i].get('conversation_status_code')}" data-conversation-id="${conversations[i].id}" data-department="${conversations[i].get('department')}">${conversations[i].getCode()}</li>`}else{SBF.error('Conversation not of type SBConversation','SBUser.getConversationsCode')}} 74return code} 75getFullConversation(conversation_id=!1,onSuccess=!1){if(conversation_id!==!1){SBF.ajax({function:'get-conversation',conversation_id:conversation_id},(response)=>{let messages=[];if(response){if(response==='agent-not-authorized'){window.location.href=SBF.URL();return} 76for(var i=0;i<response.messages.length;i++){messages.push(new SBMessage(response.messages[i]))}} 77if(onSuccess)onSuccess(new SBConversation(messages,response?response.details:!1));})}else{SBF.error('Missing conversation ID','SBUser.getFullConversation')}} 78getConversationByID(conversation_id,index=!1){for(var i=0;i<this.conversations.length;i++){if(this.conversations[i].id==conversation_id){return index?i:this.conversations[i]}} 79return!1} 80addConversation(conversation){if(conversation instanceof SBConversation){let conversation_id=conversation.id;let is_new=!0;for(var i=0;i<this.conversations.length;i++){if(this.conversations[i].id==conversation_id){this.conversations[i]=conversation;is_new=!1;break}} 81if(is_new){this.conversations.unshift(conversation)} 82return is_new}else{SBF.error('Conversation not of type SBConversation','SBUser.addConversation')}} 83removeConversation(conversation_id){let index=this.getConversationByID(conversation_id,!0);if(index!==!1)this.conversations.splice(index,1);} 84getLastConversation(){return this.isConversationsEmpty()?!1:this.conversations[this.conversations.length-1]} 85isConversationsEmpty(){return this.conversations.length==0} 86isExtraEmpty(){return Object.keys(this.extra).length===0&&this.extra.constructor===Object} 87delete(onSuccess){if(this.id){SBF.ajax({function:'delete-user',user_id:this.id},()=>{SBF.event('SBUserDeleted',this.id);onSuccess();return!0})}else{SBF.error('Missing user ID','SBUser.delete')}}} 88window.SBUser=SBUser;class SBMessage{constructor(details={}){this.details=details;if('first_name' in this.details){this.details.full_name=this.details.first_name+' '+this.details.last_name} 89let payload=this.get('payload');if(payload){try{var json=JSON.parse(this.get('payload').replace("\\'","'"));if(json&&typeof json==='object'){payload=json}else{payload={}}}catch(e){payload={}}}else{payload={}} 90this.set('payload',payload)} 91get id(){return this.get('id')} 92get attachments(){return!SBF.null(this.details.attachments)?JSON.parse(this.details.attachments):[]} 93get message(){return this.get('message')}
94get(id){if(id in this.details&&!SBF.null(this.details[id]))return this.details[id];else return''} 95set(id,value){this.details[id]=value} 96payload(key=!1,value=!1){let payload=this.get('payload');if(key!==!1&&value!==!1){payload[key]=value;this.set('payload',payload)}else if(key!==!1){return key in payload?payload.key:('id' in payload&&payload.id==key?payload:!1)} 97return payload} 98getCode(translation=!1){let agent=SBF.isAgent(this.details.user_type);let admin_menu=admin?SBAdmin.conversations.messageMenu(agent):'';let message=translation?this.get('translation'):(!this.message&&'preview' in this.payload?this.payload.preview:this.message);let attachments=this.attachments;let attachments_code='';let media_code='';let thumb=(admin&&SB_ADMIN_SETTINGS['show-profile-images'])||(!admin&&((agent&&!CHAT_SETTINGS['hide-agents-thumb'])||(!agent&&CHAT_SETTINGS['display-users-thumb'])))?`<div class="sb-thumb"><img loading="lazy" src="${this.details['profile_image']}"><div class="sb-tooltip"><div>${this.details['full_name']}</div></div></div>`:'';let css=((admin&&agent)||(!admin&&!agent)?'sb-right':'')+(thumb==''?'':' sb-thumb-active');let type='';let name=(!admin&&agent&&CHAT_SETTINGS['sender-name'])||(admin&&SB_ADMIN_SETTINGS['sender-name']=='chat-admin')?`<span class="sb-agent-name">${this.get('full_name')}</span>`:'';if(!message&&!attachments.length)return'';if(agent){message=message.replace(/\n/g,'<br>');let shortcodes=message.match(/\[.+?\]/g)||[];let rich=!1;let count=shortcodes.length;for(var i=0;i<count;i++){let settings=SBRichMessages.shortcode(shortcodes[i]);let rich_message=SBRichMessages.generate(settings[1],settings[0]);if(rich_message){if(message.charAt(0)!='['){rich_message=rich_message.replace('sb-rich-message','sb-rich-message sb-margin-top')} 99if(message.charAt(message.length-1)!=']'){rich_message=rich_message.replace('sb-rich-message','sb-rich-message sb-margin-bottom')} 100message=message.replace(shortcodes[i],'{{RM}}');message=this.render(message).replace('{{RM}}',rich_message);rich=!0;type=`data-type="${settings[0]}"`}} 101if(rich){css+=' sb-rich-cnt';if(count>1){type='data-type="multiple"'}} 102if(!count)message=this.render(message);}else message=this.render(message);if(attachments.length){attachments_code='<div class="sb-message-attachments">';for(var i=0;i<attachments.length;i++){let url=attachments[i][1];if(/.jpg|.jpeg|.png|.gif/.test(url)){media_code+=`<div class="sb-image${url.includes('.png') ? ' sb-image-png' : ''}"><img loading="lazy" src="${url}" /></div>`}else{attachments_code+=`<a rel="noopener" target="_blank" href="${url}">${attachments[i][0]}</a>`}} 103attachments_code+='</div>'} 104return `<div data-id="${this.details['id']}" class="${css}" ${type}>${thumb}<div class="sb-cnt"><div class="sb-message${media_code && !message ? ' sb-message-media' : ''}">${name}${message}${media_code}</div>${attachments_code}<div class="sb-time">${SBF.beautifyTime(this.details['creation_time'], true)}${admin && agent && this.details['status_code'] == 2 ? '<i class="sb-icon-check"></i>' : ''}</div></div>${admin_menu}</div>`} 105render(message=!1){if(message===!1)message=''+this.details.message;let len=message.length;let codes=message.match(/```([\s\S]*)```/)||[];for(var i=0;i<codes.length;i++){message=message.replace(codes[i],'[code-'+i+']')} 106message=message.replace(/(?:\r\n|\r|\n)/g,'<br>');message=message.replace(/\*([^\**]+)\*/g,"<b>$1</b>");message=message.replace(/\__([^\____]+)\__/g,"<i>$1</i>");message=message.replace(/\~([^\~~]+)\~/g,"<del>$1</del>");message=message.replace(/\`([^\``]+)\`/g,"<code>$1</code>");let false_positives=['cede','ubbed','udada'];for(var i=0;i<false_positives.length;i++){message=message.replaceAll(false_positives[i],`[U${i}]`)} 107message=message.replaceAll('uccede','[U1]');message=message.replace(/u([0-9a-f]{4,5})/mi,'&#x$1;');for(var i=0;i<false_positives.length;i++){message=message.replaceAll(`[U${i}]`,false_positives[i])} 108if(((len==6||len==5)&&message.startsWith('&#x'))||len<3&&message.match(/(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/)){message=`<span class="emoji-large">${message}</span>`} 109if(message.includes('http')){message=message.autoLink({target:'_blank'})} 110for(var i=0;i<codes.length;i++){message=message.replace('[code-'+i+']','<pre>'+$.trim($.trim(codes[i]).substr(3,codes[i].length-6).replace(/(?:\r\n|\r|\n)/g,'<br>')))+'</pre>'} 111return message.replace(/&lt;/g,'<')} 112strip(message=!1){if(message===!1)message=''+this.details.message;let replaces=[message.match(/\*([^\**]+)\*/g),message.match(/\__([^\____]+)\__/g),message.match(/\~([^\~~]+)\~/g),message.match(/\`([^\``]+)\`/g)];let chars=['*','__','~','`'];for(var i=0;i<replaces.length;i++){let items=replaces[i];if(!SBF.null(items)){for(var y=0;y<items.length;y++){message=message.replace(items[y],items[y].replaceAll(chars[i],''))}}} 113return message}} 114window.SBMessage=SBMessage;class SBConversation{constructor(messages,details){this.details=SBF.null(details)?{}
114:details;if(Array.isArray(messages)){this.messages=[];if(messages.length){if(messages[0]instanceof SBMessage){this.messages=messages}else{SBF.error('Messages not of type SBMessage','SBConversation.constructor')}}}else{SBF.error('Message array not of type Array','SBConversation.constructor')}} 115get id(){return this.get('id')==''?this.get('conversation_id'):this.get('id')} 116get(id){if(id in this.details&&!SBF.null(this.details[id])){return this.details[id]} 117if(id=='title'){if(!SBF.null(this.details.first_name)){return this.details.first_name+' '+this.details.last_name}else if(this.messages.length){return this.messages[0].get('full_name')}} 118return''} 119set(id,value){this.details[id]=value} 120getMessage(id){for(var i=0;i<this.messages.length;i++){if(this.messages[i].id==id){this.messages[i].set('index',i);return this.messages[i]}} 121return!1} 122getLastMessage(){let index=this.messages.length-1;for(var i=index;i>-1;i--){if(this.messages[i].message||this.messages[i].attachments.length)return this.messages[i]} 123return!1} 124getLastUserMessage(index=!1,agent=!1){if(index===!1)index=this.messages.length-1;for(var i=index;i>-1;i--){let message=this.messages[i];let user_type=message.get('user_type');if(!message.message&&!message.attachments.length)continue;if((!agent&&!SBF.isAgent(user_type))||(agent===!0&&(user_type=='agent'||user_type=='admin'))||(agent=='bot'&&user_type=='bot')||(agent=='no-bot'&&user_type!='bot')||(agent=='all'&&SBF.isAgent(user_type))){this.messages[i].set('index',i-1);return this.messages[i]}} 125return!1} 126getUserMessages(user_type='user'){let results=[];let checks=user_type=='user'?['visitor','lead','user']:(user_type=='agents'?['agent','admin']:['bot']);for(var i=0;i<this.messages.length;i++){if(checks.includes(this.messages[i].get('user_type'))){results.push(this.messages[i])}} 127return results} 128updateMessage(id,message){if(message instanceof SBMessage){for(var i=0;i<this.messages.length;i++){if(this.messages[i].id==id){this.messages[i]=message;return!0}}}else{SBF.error('Message not of type SBMessage','SBConversation.updateMessage')} 129return!1} 130addMessages(messages){if(Array.isArray(messages)){for(var i=0;i<messages.length;i++){if(messages[i]instanceof SBMessage){this.messages.push(messages[i])}}}else{if(messages instanceof SBMessage){this.messages.push(messages)}else{SBF.error('Messages not of type SBMessage','SBConversation.addMessages()')}} 131return this} 132getCode(){let count=this.messages.length;if(count){let message=this.messages[count-1];let text=message.message;if(text.indexOf('[')!==!1){let shortcodes=text.match(/\[.+?\]/g)||[];if(shortcodes.length){let shortcode=SBRichMessages.shortcode(shortcodes[0]);text=text.replace(shortcodes[0],sb_(SBF.null(shortcode[1].message)?(SBF.null(shortcode[1].title)?'':shortcode[1].title):shortcode[1].message))}} 133let title=this.get('title');if(!title||(tickets&&CHAT_SETTINGS['tickets-conversations-title-user']))title=SBF.isAgent(message.get('user_type'))?message.get('full_name'):sb_('You');return `<div class="sb-conversation-item" data-user-id="${message.get('user_id')}"><img loading="lazy" src="${message.get('profile_image')}"><div><span class="sb-name">${title}</span><span class="sb-time">${SBF.beautifyTime(message.get('creation_time'))}</span></div><div class="sb-message">${text.length > 114 ? text.substr(0, 114) + ' ...' : text}</div></div>`} 134return''} 135deleteMessage(id){for(var i=0;i<this.messages.length;i++){if(this.messages[i].id==id){this.messages.splice(i,1);return!0}} 136return!1} 137searchMessages(search,exact_match=!1){let results=[];for(var i=0;i<this.messages.length;i++){let message=this.messages[i].message;if((exact_match&&message==search)||(!exact_match&&message.includes(search))){results.push[messages[i]]}} 138return results} 139getAttachments(){let list=[];for(var i=0;i<this.messages.length;i++){let attachments=this.messages[i].attachments;for(var j=0;j<attachments.length;j++){let link=attachments[j][1];list.push([attachments[j][0],link,link.substr(link.lastIndexOf('.')+1),this.messages[i].id])}} 140return list} 141updateMessagesStatus(ids=!1){if(ids){for(var i=0;i<this.messages.length;i++){let id=this.messages[i].id;if(ids.includes(id)){let div=chat.find(`[data-id="${id}"] .sb-time`);if(!div.find('i').length)div.append('<i class="sb-icon-check"></i>');}}}else if(!admin&&visibility_status=='visible'){ids=[];for(var i=0;i<this.messages.length;i++){let message=this.messages[i];if(SBF.isAgent(message.get('user_type'))&&message.status_code!=2){ids.push(message.id);message.set('status_code',2)}} 142if(ids.length)SBF.ajax({function:'update-messages-status',conversation_id:this.id,message_ids:ids})}}} 143window.SBConversation=SBConversation;var SBChat={rich_messages_list:['chips','buttons','select','inputs','table','list'],emoji_options:{range:0,range_limit:47,list:[],list_now:[],touch:!1},initialized:!1,editor_listening:!1,conversation:!1,is_busy:!1,is_busy_update:!1,is_busy_populate:!1,
143chat_open:!1,real_time:!1,agent_id:-1,agent_online:!1,user_online:!1,expanded:!1,main_header:!0,start_header:!1,desktop_notifications:!1,flash_notifications:!1,id_last_message:0,id_last_message_conversation:0,datetime_last_message_conversation:'2000-01-01 00:00:00',audio:!1,audio_out:!1,audio_interval:!1,tab_active:!0,notifications:[],typing_settings:{typing:!1,sent:!1,timeout:!1},email_sent:!1,dashboard:!1,articles:!1,articles_categories:!1,slack_channel:[-1,-1],skip:!1,queue_interval:!1,departments:!1,default_department:null,default_agent:null,offline_message_set:!1,sendMessage:function(user_id=-1,message='',attachments=[],onSuccess=!1,payload=!1,conversation_status_code=!1){let is_dialogflow_human_takeover=dialogflow_human_takeover&&SBApps.dialogflow.active();let is_return=!1;if(!activeUser()&&!admin){this.addUserAndLogin(()=>{return this.sendMessage(user_id,message,attachments,onSuccess,payload)},!0);return} 144if(!this.conversation){let last_conversation=admin?!1:activeUser().getLastConversation();if(last_conversation&&force_action!='new-conversation'&&(!SBChat.default_department||SBChat.default_department==last_conversation.get('department'))&&(!SBChat.default_agent||SBChat.default_agent==last_conversation.get('agent_id'))){this.openConversation(last_conversation.id);this.setConversation(last_conversation);force_action=!1}else{this.newConversation(conversation_status_code,user_id,'',[],(admin&&SB_ACTIVE_AGENT.department?SB_ACTIVE_AGENT.department:null),null,()=>{return this.sendMessage(user_id,message,attachments,onSuccess,payload)});return}} 145this.calculateLabelDateFirst();if(user_id==-1)user_id=admin?SB_ACTIVE_AGENT.id:activeUser().id;let is_user=user_id!=bot_id;if(!message&&!attachments.length){message=chat_textarea.val().trim();chat_editor.find('.sb-attachments > div').each(function(){attachments.push([$(this).attr('data-name'),$(this).attr('data-value')])});if(admin&&SBAdmin.must_translate){SBApps.dialogflow.translate([message],activeUser().language,(response)=>{if(response.length){if(payload){payload['original-message']=message}else{payload={'original-message':message}} 146if(response[0].translatedText)message=response[0].translatedText} 147this.sendMessage(user_id,message,attachments,onSuccess,payload,conversation_status_code)});is_return=!0}} 148this.busy(!0);if(is_user){chat_textarea.val('').css('height','');chat_editor.find('.sb-attachments').html('')} 149this.activateBar(!1);if(is_return)return;if(conversation_status_code===!1&&user_id==bot_id){conversation_status_code='skip'} 150if(!admin&&is_user&&!is_dialogflow_human_takeover){conversation_status_code=2} 151if(message||attachments.length||payload){let message_response={user_id:user_id,user:activeUser(),conversation_id:this.conversation.id,conversation:this.conversation,conversation_status_code:conversation_status_code,message:message,attachments:attachments};SBF.ajax({function:'send-message',user_id:user_id,conversation_id:this.conversation.id,message:message,attachments:attachments,conversation_status_code:conversation_status_code,queue:!admin&&CHAT_SETTINGS.queue&&is_user,payload:payload,recipient_id:admin?activeUser().id:!1},(response)=>{let send_slack=admin||!is_dialogflow_human_takeover||response.human_takeover_active 152if(!admin&&user_id==bot_id){if(this.dashboard){this.updateConversations()}else if(!this.chat_open){this.updateNotifications('add',this.conversation.id)}} 153if((admin&&!this.user_online)||(!admin&&!this.agent_online)){this.update()} 154if(!admin&&is_user&&!dialogflow_human_takeover){this.followUp();this.offlineMessage()} 155if(!admin&&is_user&&(!payload||(payload.id!='sb-human-takeover'&&SBF.null(payload['skip-dialogflow'])))){SBApps.dialogflow.message(message,attachments)} 156if(!admin&&is_user&&activeUser().type=='visitor'){SBF.ajax({function:'update-user-to-lead',user_id:user_id},()=>{activeUser().set('user_type','lead');if(CHAT_SETTINGS['slack-active']&&send_slack){this.slackMessage(user_id,activeUser().name,activeUser().image,message,attachments)}})}else if(send_slack&&!this.skip){if(admin&&SB_ADMIN_SETTINGS['slack-active']){this.slackMessage(activeUser().id,SB_ACTIVE_AGENT.full_name,SB_ACTIVE_AGENT.profile_image,message,attachments)}else if(CHAT_SETTINGS['slack-active']){this.slackMessage(activeUser().id,(is_user?activeUser().name:CHAT_SETTINGS['bot-name']),(is_user?activeUser().image:CHAT_SETTINGS['bot-image']),message,attachments)}} 157if(is_user&&CHAT_SETTINGS['language-detection']&&this.conversation&&message.split(' ').length>1&&!SBF.storage('language-detection-completed')){SBF.ajax({function:'google-language-detection-update-user',user_id:user_id,string:message,token:SBApps.dialogflow.token});SBF.storage('language-detection-completed',!0)} 158if(this.articles&&!admin&&CHAT_SETTINGS.articles&&!CHAT_SETTINGS['office-hours']&&!this.isInitDashboard()){setTimeout(()=>{if(this.conversation){this.sendMessage(bot_id,'[articles]');this.scrollBottom();this.articles=!1}},5000)} 159if(response.queue){this.queue(this.conversation.id)} 160message_response.message_id=response.id;SBF.event('SBMessageSent',message_response);if(tickets)SBTickets.onMessageSent();if(onSuccess)onSuccess(message_response);if(response.notifications.length)SBF.event('SBNotificationsSent',response.notifications);if(this.skip)this.skip=!1;this.busy(!1)});if(is_user){message=SBF.escape(message);chat.append((new SBMessage({id:'sending',profile_image:(admin?SB_ACTIVE_AGENT.profile_image:activeUser().image),full_name:activeUser().name,creation_time:'0000-00-00 00:00:00',message:message,user_type:(admin?'agent':'user')})).getCode().replace('<div class="sb-time"></div>
160',`<div class="sb-time">${sb_('Sending')}<i></i></div>`));if(!this.dashboard)this.scrollBottom();} 161if(this.audio&&(!admin&&this.chat_open&&is_user&&['a','aa'].includes(CHAT_SETTINGS.sound.code))||(admin&&SB_ADMIN_SETTINGS.sound.code=='a')){this.audio_out.play()}}else this.busy(!1)},sendBotMessage:function(message='',attachments=[]){return SBApps.dialogflow.message(message,attachments)},updateMessage:function(message_id,message=''){SBF.ajax({function:'update-message',message_id:message_id,message:message})},sendEmail:function(message,attachments,send_to_active_user=!1){let recipient_id=send_to_active_user?activeUser().id:this.getRecipientUserID();if(!admin&&!isNaN(recipient_id)&&this.agent_online){return!1} 162SBF.ajax({function:'create-email',recipient_id:recipient_id,sender_name:admin?(send_to_active_user?SB_ACTIVE_AGENT.full_name:activeUser().name):(send_to_active_user?CHAT_SETTINGS['bot-name']:activeUser().name),sender_profile_image:admin?(send_to_active_user?SB_ACTIVE_AGENT.profile_image:activeUser().name):(send_to_active_user?CHAT_SETTINGS['bot-image']:activeUser().image),message:message,attachments:attachments,department:this.conversation?this.conversation.get('department'):!1,conversation_id:this.conversation?this.conversation.id:!1})},sendSMS:function(message){let recipient_id=this.getRecipientUserID();if(!admin&&!isNaN(recipient_id)&&this.agent_online)return!1;SBF.ajax({function:'send-sms',to:recipient_id,message:message,conversation_id:this.conversation?this.conversation.id:!1},(response)=>{if(response.status=='sent'||response.status=='queued'){SBF.event('SBSMSSent',{recipient_id:this.getRecipientUserID(),message:message,response:response})}else if(response.message){SBF.error(response.message,'SBChat.sendSMS')}})},desktopNotification:function(title,message,icon,conversation_id=!1,user_id=!1){if(Notification.permission!=='granted'){Notification.requestPermission()}else{let notify=SBPusher.sw.showNotification(title,{body:(new SBMessage()).strip(message),icon:icon.indexOf('user.svg')>0?CHAT_SETTINGS['notifications-icon']:icon});notify.onclick=()=>{if(admin){if(conversation_id){SBAdmin.conversations.openConversation(conversation_id,user_id==!1?activeUser().id:user_id);SBAdmin.conversations.update()}else if(user_id){SBAdmin.profile.show(user_id)}}else{this.start()} 163window.focus()}}},getRecipientUserID:function(){return admin?activeUser().id:(this.lastAgent(!1)?this.lastAgent(!1)['user_id']:(SBF.null(this.conversation.get('agent_id'))?(SBF.null(this.conversation.get('department'))?'agents':'department-'+this.conversation.get('department')):this.conversation.get('agent_id')))},submit:function(){if(!this.is_busy){this.sendMessage();if(CHAT_SETTINGS['cron-email-piping-active']){setInterval(function(){SBF.ajax({function:'email-piping'})},60000);CHAT_SETTINGS['cron-email-piping-active']=!1} 164if(SBPusher.init_push_notifications){SBPusher.initPushNotifications()}}},initChat:function(){if(admin)return;SBF.getActiveUser(!0,()=>{let active=activeUser()!==!1;let user_type=active?activeUser().type:!1;if(!tickets&&CHAT_SETTINGS.popup.active&&!storage('popup')&&(!mobile||!CHAT_SETTINGS['popup-mobile-hidden'])){this.popup()} 165SBChat.automations.run_all();if(!tickets&&CHAT_SETTINGS.privacy&&!CHAT_SETTINGS['registration-required']&&!storage('privacy-approved')){this.privacy();return} 166if(typeof Notification!==ND&&!CHAT_SETTINGS['push-notifications-users']&&(CHAT_SETTINGS['desktop-notifications']=='all'||(CHAT_SETTINGS['desktop-notifications']=='users')||(admin&&CHAT_SETTINGS['desktop-notifications']=='agents'))){this.desktop_notifications=!0} 167if(CHAT_SETTINGS['flash-notifications']=='all'||(CHAT_SETTINGS['flash-notifications']=='users')||(admin&&CHAT_SETTINGS['flash-notifications']=='agents')){this.flash_notifications=!0} 168if(this.registration(!0)&&!tickets){this.registration();if(!active&&CHAT_SETTINGS['visitors-registration']){this.addUserAndLogin()} 169return} 170if(!active&&(typeof SB_WP_WAITING_LIST!==ND||CHAT_SETTINGS['visitors-registration']||CHAT_SETTINGS.welcome||CHAT_SETTINGS.subscribe||tickets)&&(!tickets||!CHAT_SETTINGS['tickets-registration-required'])){this.addUserAndLogin(()=>{this.welcome();this.subscribe();
170SBApps.woocommerce.waitingList();this.finalizeInit()})}else if(!this.conversation&&active){this.populateConversations()}else{this.finalizeInit()} 171if(CHAT_SETTINGS['header-name']&&active&&user_type=='user'&&!tickets){chat_header.find('.sb-title').html(`${sb_('Hello')} ${activeUser().nameBeautified}!`)} 172this.welcome();this.subscribe();if(!SBPusher.active){setInterval(()=>{this.updateConversations();this.updateUsersActivity()},10200)} 173SBApps.woocommerce.waitingList();this.scrollBottom(!0)})},finalizeInit:function(){if(!this.initialized){main.attr('style','');if(!admin&&!tickets){if(this.isInitDashboard()){this.showDashboard()} 174if(!mobile&&window.innerHeight<760){main.find(' > .sb-body').css('max-height',(window.innerHeight-130)+'px')}} 175this.initialized=!0;if(!admin){if(activeUser()&&!this.registration(!0)){if(storage('open-conversation'))this.openConversation(storage('open-conversation'));if(SBF.getURL('conversation'))this.openConversation(SBF.getURL('conversation'));} 176if(!this.chat_open&&((!mobile&&storage('chat-open'))||SBF.getURL('chat')=='open')||SBF.getURL('conversation')){setTimeout(()=>{this.start()},500)} 177if(CHAT_SETTINGS['woocommerce-returning-visitor']){if(storage('returning-visitor')===!1){SBF.storageTime('returning-visitor')}else if(SBF.storageTime('returning-visitor',24)&&!storage('returning-visitor-processed')){setTimeout(()=>{SBF.ajax({function:'woocommerce-returning-visitor'},()=>{storage('returning-visitor-processed',!0)})},15000)}} 178if(CHAT_SETTINGS['timetable-type'])SBChat.offlineMessage();if(CHAT_SETTINGS['queue-human-takeover']&&SBApps.dialogflow.humanTakeoverActive()){CHAT_SETTINGS.queue=!0}} 179if(tickets)SBTickets.init();SBF.event('SBInit')}},start:function(){if(this.initialized){this.populate();this.headerAgent();this.updateUsersActivity();this.startRealTime();this.chat_open=!0;this.popup(!0);if(this.conversation)this.updateNotifications('remove',this.conversation.id);main.sbActive(!0);$('body').addClass('sb-chat-open');if(CHAT_SETTINGS['welcome-trigger']=='open'){this.welcome()} 180SBApps.martfury.privateChat();this.calculateLabelDates()}},open:function(open=!0){if(open&&!this.chat_open){this.start();this.chat_open=!0;this.startRealTime();main.sbActive(!0);$('body').addClass('sb-chat-open');storage('chat-open',!0);if(this.conversation)storage('last-open-message',this.conversation.getLastMessage().id);if(mobile)history.pushState({'chat-open':!0},'','');SBF.event('SBChatOpen')}else if(!open&&this.chat_open){main.sbActive(!1);this.stopRealTime();this.chat_open=!1;storage('chat-open',!1);$('body').removeClass('sb-chat-open');SBF.event('SBChatClose')}},openConversation:function(conversation_id){activeUser().getFullConversation(conversation_id,(response)=>{if(!response.id){storage('open-conversation','');return!1} 181this.setConversation(response);this.hideDashboard();this.populate();this.main_header=!1;if(storage('queue')==conversation_id){this.queue(conversation_id)} 182if((this.chat_open||tickets)){this.updateNotifications('remove',conversation_id)} 183if(tickets)SBTickets.activateConversation(response);storage('open-conversation',conversation_id);SBF.event('SBConversationOpen',response)})},update:function(){if(this.conversation){if(this.is_busy_update)return;let last_message=this.conversation.getLastMessage();let is_update=!1;SBF.ajax({function:'get-new-messages',conversation_id:this.conversation.id,datetime:this.datetime_last_message_conversation,last_id:this.id_last_message_conversation},(response)=>{let count=response.length;this.is_busy_update=!1;if(this.conversation){if(Array.isArray(response)&&count>0&&(!last_message||last_message.id!=response[count-1].id||last_message.message!=response[count-1].message||last_message.payload!=response[count-1].payload||last_message.attachments!=response[count-1].attachments)){let code='';let messages=[];let id_check=[];let dialogflow_activation=!1;this.calculateLabelDateFirst();for(var i=0;i<count;i++){if(!id_check.includes(response[i].id)){let message=new SBMessage(response[i]);let payload=message.payload();this.id_last_message_conversation=message.id;this.datetime_last_message_conversation=message.get('creation_time');if(!['boolean','string'].includes(typeof payload)){if('event' in payload){let event=payload.event;if((event=='delete-message'&&this.conversation.getMessage(message.id)!==!1)||(!admin&&message.message==''&&!message.attachments.length)){this.deleteMessage(message.id)}
184if(event=='woocommerce-update-cart'&&!admin){SBApps.woocommerce.updateCart(payload.action,payload.id)} 185if(!SBApps.dialogflow.active()&&(event=='conversation-status-update-3'||event=='conversation-status-update-4'||event=='activate-bot')){SBApps.dialogflow.active('activate');dialogflow_activation=!0} 186if(CHAT_SETTINGS['close-chat']&&event=='conversation-status-update-3'){this.closeChat(!1);return}} 187if('human-takeover' in payload&&CHAT_SETTINGS['queue-human-takeover']){CHAT_SETTINGS.queue=!0;SBChat.queue(SBChat.conversation.id)}} 188if(this.conversation.getMessage(response[i].id)){this.conversation.updateMessage(message.id,message);chat.find(`[data-id="${message.id}"]`).replaceWith(message.getCode());is_update=!0}else{this.conversation.addMessages(message);code+=message.getCode()} 189this.conversation.updateMessagesStatus();messages.push(message);id_check.push(message.id);if(this.chat_open)storage('last-open-message',message.id);}} 190chat.append(code);let last_message=this.conversation.getLastMessage();let user_type=last_message.get('user_type');let is_agent=SBF.isAgent(user_type);if(!admin&&is_agent&&user_type!='bot'){if(this.chat_open){if(last_message.message.indexOf('sb-rich-success')==-1)this.setConversationStatus(0);if(CHAT_SETTINGS.follow.active)clearTimeout(timeout);} 191if(!dialogflow_activation)SBApps.dialogflow.active(!1);} 192if(storage('queue')==this.conversation.id&&is_agent&&user_type!='bot'){this.queue('clear')} 193chat.find('[data-id="sending"]').remove();this.headerAgent();if(!this.dashboard&&!is_update){this.scrollBottom();setTimeout(()=>{this.scrollBottom()},300)} 194if(this.dashboard||!this.chat_open){this.updateNotifications('add',this.conversation.id)} 195this.typing(-1,'stop');this.busy(!1);if(this.audio&&(count!=1||!(SBF.null(messages[0].message)&&SBF.null(messages[0].attachments)))&&((!admin&&this.chat_open&&(is_agent||user_type=='bot')&&['aa','ia'].includes(CHAT_SETTINGS.sound.code))||(admin&&!SBF.isAgent(user_type)&&['a','i','ic'].includes(SB_ADMIN_SETTINGS.sound.code)))){this.playSound()} 196SBF.event('SBNewMessagesReceived',messages);if(tickets)SBTickets.onNewMessageReceived(messages[0]);}}});this.is_busy_update=!0;setTimeout(()=>{this.is_busy_update=!1},5000)}else{this.updateConversations()}},updateConversations:function(){if(activeUser()){SBF.ajax({function:'get-new-user-conversations',datetime:this.id_last_message},(response)=>{if(response.length){this.id_last_message=response[0].id;if(this.chat_open)storage('last-open-message',response[0].id);for(var i=0;i<response.length;i++){let conversation_id=response[i].conversation_id;let message=new SBMessage(response[i]);let status_code=response[i].conversation_status_code;let conversation=new SBConversation([message],{id:conversation_id,conversation_status_code:status_code,department:response[i].department,title:response[i].title});let is_new=activeUser().addConversation(conversation);if(response[i].user_id!=activeUser().id&&(this.conversation.id!=conversation_id||!this.chat_open)){this.updateNotifications('add',conversation_id);if(CHAT_SETTINGS['auto-open']){this.start()}} 197let payload=message.payload();if(typeof payload!=='boolean'&&'event' in payload){let event=payload.event;if(event=='open-chat'){if(mobile){this.open(!1)}else{if(this.conversation.id!=conversation_id||this.dashboard){this.openConversation(conversation_id)} 198setTimeout(()=>{this.open()},500)}} 199if(message.message==''&&!message.attachments.length){continue}} 200if(!this.tab_active){if(this.desktop_notifications){SBChat.desktopNotification(message.get('full_name'),message.message,message.get('profile_image'))} 201if(this.flash_notifications){this.flashNotification()} 202if(this.audio&&['a','aa','i'].includes(CHAT_SETTINGS.sound.code)&&(!this.chat_open||!this.tab_active||this.dashboard)&&!(SBF.null(message.message)&&SBF.null(message.attachments))){this.playSound()}} 203if(is_new){SBF.event('SBNewConversationReceived',conversation);if(tickets)SBTickets.onNewConversationReceived(conversation);}} 204if(this.conversation)this.conversation.updateMessagesStatus();main.find('.sb-user-conversations').html(activeUser().getConversationsCode());main.find('.sb-dashboard-conversations').setClass('sb-conversations-hidden',main.find('.sb-user-conversations > li').length>3)}})}},populate:function(){if(this.conversation){let code='';let notify=chat.find(' > .sb-notify-message');let last_date=!1;let length=this.conversation.messages.length;for(var i=0;i<length;i++){let message=this.conversation.messages[i];let current_date=SBF.beautifyTime(message.get('creation_time'));if(current_date.includes('today'))current_date=`<span>${sb_('Today')}</span>`;if(current_date!=last_date&&(message.message||message.attachments.length)){code+=`<div class="sb-label-date">${current_date}</div>`;last_date=current_date} 205code+=message.getCode()} 206chat.html((notify.length?notify[0].outerHTML:'')+code);if(!this.dashboard){this.scrollBottom();this.calculateLabelDates()}}else if(activeUser()&&!activeUser().isConversationsEmpty()){if(CHAT_SETTINGS['disable-dashboard'])this.openConversation(activeUser().conversations[0].id);else this.showDashboard()}},populateConversations:function(onSuccess=!1){if(!this.is_busy_populate&&activeUser()){this.is_busy_populate=!0;setTimeout(()=>{this.is_busy_populate=!1},5000);activeUser().getConversations((response)=>{let count=response.length;if(count){let now=Date.now();let last_message=response[0].messages[0] 207this.id_last_message=last_message.id;for(var i=0;i<count;i++){if((response[i].get('conversation_status_code')==1&&storage('last-open-message')!=last_message.id)&&(!this.conversation||this.conversation.id!=response[i].id)){this.updateNotifications('add',response[i].id)} 208if(!mobile&&(now-SBF.UTC(response[i].messages[0].get('creation_time')))<6000)this.open();} 209main.find('.sb-user-conversations').html(activeUser().getConversationsCode());main.find('.sb-dashboard-conversations').setClass('sb-conversations-hidden',main.find('.sb-user-conversations > li').length>3)} 210main.setClass('sb-no-conversations',!count);if((!this.initialized||force_action=='open-conversation')&&count==1&&!this.isInitDashboard()&&!storage('open-conversation')){this.openConversation(activeUser().conversations[0].id);
210if(force_action=='open-conversation')force_action=''} 211if(onSuccess){onSuccess(response)} 212this.finalizeInit()})}},newConversation:function(status_code,user_id=-1,message='',attachments=[],department=null,agent_id=null,onSuccess=!1){if(activeUser()){SBF.ajax({function:'new-conversation',status_code:status_code,title:tickets?main.find('.sb-ticket-title input').val():null,department:SBF.null(department)?this.default_department:department,agent_id:SBF.null(agent_id)?this.default_agent:agent_id,source:tickets?'tk':''},(response)=>{if(SBF.errorValidation(response,'user-not-found')){this.addUserAndLogin(()=>{this.newConversation(status_code,user_id,message,attachments,department,agent_id,onSuccess)});return} 213let conversation=new SBConversation([],response.details);this.setConversation(conversation);if(message||attachments.length){this.sendMessage(user_id,message,attachments)} 214if(user_id!=bot_id){setTimeout(()=>{this.queue(conversation.id)},1000)} 215activeUser().conversations.push(conversation);if(onSuccess)onSuccess(conversation);})}else{SBF.error('activeUser() not setted','SBChat.newConversation')}},setConversation:function(conversation){if(conversation instanceof SBConversation){this.conversation=conversation;this.id_last_message_conversation=!this.conversation.getLastMessage()?0:this.conversation.getLastMessage().id;this.datetime_last_message_conversation=this.conversation.getLastMessage()==!1?'2000-01-01 00:00:00':this.conversation.getLastMessage().get('creation_time');if(conversation.id!=this.conversation.id){this.queue(conversation.id)} 216storage('open-conversation',conversation.id);SBF.event('SBActiveConversationChanged',conversation)}else{SBF.error('Value not of type SBConversation','SBChat.setConversation')}},queue:function(conversation_id){if(conversation_id=='clear'){main.removeClass('sb-notify-active sb-queue-active');chat.find(' > .sb-notify-message').remove();clearInterval(this.queue_interval);this.queue_interval=!1;storage('queue','');if(CHAT_SETTINGS['queue-sound']&&!SBChat.tab_active)SBChat.playSound(999);return} 217if(!admin&&CHAT_SETTINGS.queue){SBF.ajax({function:'queue',conversation_id:conversation_id,department:this.conversation.get('department')},(response)=>{chat.find(' > .sb-notify-message').remove();let position=response[0];if(position==0){this.queue('clear')}else{let time=(!CHAT_SETTINGS['queue-response-time']?5:parseInt(CHAT_SETTINGS['queue-response-time']))*position;let text=sb_(!CHAT_SETTINGS['queue-message']?'Please wait for an agent. You are number {position} in the queue. Your waiting time is approximately {minutes} minutes.':CHAT_SETTINGS['queue-message']).replace('{position}','<b>'+position+'</b>').replace('{minutes}','<b>'+time+'</b>');if(response[1])chat.prepend(`<div class="sb-notify-message sb-rich-cnt"><div class="sb-cnt"><div class="sb-message">${text}</div></div></div>`);if(this.queue_interval===!1){this.queue_interval=setInterval(()=>{this.queue(conversation_id)},10100);if(response[1])main.addClass('sb-notify-active sb-queue-active');storage('queue',conversation_id)}} 218SBF.event('SBQueueUpdate',position)})}},getDepartmentCode(department_id,onSuccess){if(this.departments){if(department_id=='all'){let code='';for(var key in this.departments){this.getDepartmentCode(this.departments[key].id,(response)=>{code+=response})};onSuccess(code)}else{onSuccess(`<div data-color="${this.departments[department_id]['color']}">${this.departments[department_id]['image'] == '' ? `<span></span>` : `<img loading="lazy" src="${this.departments[department_id]['image']}"/>`}<div>${this.departments[department_id]['name']}<div></div>`)}}else{SBF.ajax({function:'get-departments'},(response)=>{if(response){this.departments=response;this.getDepartmentCode(department_id,onSuccess)}})}},startRealTime:function(){if(SBPusher.active)return;this.stopRealTime();this.real_time=setInterval(()=>{this.update();this.typing(admin?(activeUser()?activeUser().id:-1):this.agent_id,'check')},1000)},stopRealTime:function(){clearInterval(this.real_time)},updateUsersActivity:function(){if(activeUser()){SBF.updateUsersActivity(activeUser().id,this.agent_id,(response)=>{if(!this.typing_settings.typing){if(response=='online'||this.agent_id==bot_id){$(chat_status).addClass('sb-status-online').html(sb_('Online'));this.agent_online=this.agent_id!=bot_id}else{$(chat_status).removeClass('sb-status-online').html(sb_('Away'));this.agent_online=!1}}})}},busy:function(value){chat_editor.find('.sb-loader').sbActive(value);this.is_busy=value;SBF.event('SBBusy',value)},headerAgent:function(){if(!admin&&!tickets&&!this.dashboard&&this.conversation&&(this.agent_id==-1||(this.conversation.getLastMessage()&&SBF.isAgent(this.conversation.getLastMessage().get('user_type'))&&this.conversation.getLastMessage().get('user_id')!=this.agent_id))){let agent=this.lastAgent();if(agent){this.agent_id=agent.user_id;this.headerReset();chat_header.addClass('sb-header-agent').attr('data-agent-id',this.agent_id).html(`<div class="sb-dashboard-btn sb-icon-arrow-left"></div><div class="sb-profile"><img loading="lazy" src="${agent['profile_image']}" /><div><span class="sb-name">${agent['full_name']}</span><span class="sb-status">${sb_('Away')}</span></div><i class="sb-icon sb-icon-close ${CHAT_SETTINGS['close-chat'] ? 'sb-close-chat' : 'sb-responsive-close-btn'}"></i></div><div class="sb-label-date-top"></div>`);chat_status=chat_header.find('.sb-status');this.updateUsersActivity();label_date=chat_header.find('.sb-label-date-top');if(SBF.storageTime('header-animation',1)){this.headerAnimation()}}}},headerReset:function(){if(this.start_header==!1){this.start_header=[chat_header.html(),chat_header.attr('class')]} 219chat_header.removeClass('sb-header-main sb-header-brand sb-header-agent sb-header-minimal');this.main_header=!1},headerAnimation:function(){chat_header.addClass('sb-header-animation');setTimeout(()=>{chat_header.removeClass('sb-header-animation')},8000);SBF.storageTime('header-animation')},lastAgent:function(bot=!0){let agent=!1;if(this.conversation){let message=this.conversation.getLastUserMessage(!1,bot?'all':!0);if(message){agent={user_id:message.get('user_id'),full_name:message.get('full_name'),profile_image:message.get('profile_image')}}} 220return agent},scrollBottom:function(top=!1){label_date_show=!1;setTimeout(()=>{label_date_show=!0},1000);setTimeout(()=>{chat_scroll_area.scrollTop(top?0:chat_scroll_area[0].scrollHeight);this.scrollHeader()},20)},isBottom:function(){return chat_scroll_area[0].scrollTop===(chat_scroll_area[0].scrollHeight-chat_scroll_area[0].offsetHeight)},scrollHeader:function(){if(this.main_header&&this.dashboard){let scroll=chat_scroll_area.scrollTop();if(scroll>-1&&scroll<1000){chat_header.find('.sb-content').css({'opacity':(1-(scroll/500)),'top':(scroll/10*-1)+'px'})}}},showDashboard:function(){if(!admin&&!tickets){main.addClass('sb-dashboard-active');chat_header.removeClass('sb-header-agent');this.hidePanel() 221if(this.start_header)chat_header.html(this.start_header[0]).addClass(this.start_header[1]);chat_scroll_area.find(' > div').sbActive(!1);main.find('.sb-dashboard').sbActive(!0);this.populateConversations();this.conversation=!1;this.agent_id=-1;this.stopRealTime();this.dashboard=!0;this.main_header=!0;this.scrollBottom(!0);SBF.event('SBDashboard')}},hideDashboard:function(){if(!admin&&!tickets){chat.sbActive(!0);main.removeClass('sb-dashboard-active').find('.sb-dashboard').sbActive(!1);this.dashboard=!1;this.headerAgent();this.scrollHeader(0);if(this.chat_open){this.startRealTime()} 222SBF.event('SBDashboardClosed')}},showPanel:function(name,title){if(tickets)return SBTickets.showPanel(name,title);let panel=chat_scroll_area.find(' > .sb-panel-'+name);if(panel.length){chat_scroll_area.find(' > div').sbActive(!1);panel.sbActive(!0);if(!this.start_header)this.start_header=[chat_header.html(),chat_header.attr('class')];chat_header.attr('class','sb-header sb-header-panel').html(`${sb_(title)}<div class="sb-dashboard-btn sb-icon-close"></div>`);main.addClass('sb-panel-active');this.dashboard=!0} 223SBF.event('SBPanelActive',name)},hidePanel:function(){main.removeClass('sb-panel-active');chat_header.removeClass('sb-header-panel')},clear:function(){this.conversation=!1;chat.html('')},updateNotifications:function(action='add',conversation_id){if(action=='add'&&!this.notifications.includes(conversation_id)){this.notifications.push(conversation_id);if(!this.dashboard&&this.conversation&&this.conversation.id!=conversation_id)this.headerAnimation();} 224if(action=='remove'){for(var i=0;i<this.notifications.length;i++){if(this.notifications[i]==conversation_id){this.notifications.splice(i,1);if(this.conversation.get('conversation_status_code')!=0&&['1','2',1,2].includes(this.conversation.get('conversation_status_code'))){this.setConversationStatus(0)} 225break}}} 226let count=this.notifications.length;main.find('.sb-chat-btn span').attr('data-count',count).html(count>-1?count:0);SBF.event('SBNotificationsUpdate',{action:action,conversation_id:conversation_id})},setConversationStatus:function(status_code){if(this.conversation){SBF.ajax({function:'update-conversation-status',conversation_id:this.conversation.id,status_code:status_code},()=>{this.conversation.set('conversation_status_code',status_code);SBF.event('SBActiveConversationStatusUpdated',{conversation_id:this.conversation.id,status_code:status_code})});return!0} 227return!1},typing:function(user_id=-1,action='check'){if(this.conversation){let valid=this.agent_online||(admin&&this.user_online);if(action=='check'&&!SBPusher.active&&user_id!=-1&&user_id!=bot_id&&valid){SBF.ajax({function:'is-typing',user_id:user_id,c
227onversation_id:this.conversation.id},(response)=>{if(response&&!this.typing_settings.typing){this.typing(-1,'start')}else if(!response&&this.typing_settings.typing){this.typing(-1,'stop')}})}else if(action=='set'&&valid){let source=this.conversation.get('source');if(source){source=source=='fb'?[source,activeUser().getExtra('facebook-id')['value'],this.conversation.get('extra')]:(source=='tw'?[source,activeUser().getExtra('twitter-id')['value']]:!1)} 228if(SBPusher.active){SBF.debounce(()=>{SBPusher.trigger('client-typing',{user_id:admin?SB_ACTIVE_AGENT.id:activeUser().id,conversation_id:this.conversation.id});if(source)SBF.ajax({function:'set-typing',source:source})},'#2')}else{if(!this.typing_settings.sent){this.typing_settings.sent=!0;SBF.ajax({function:'set-typing',user_id:user_id,conversation_id:this.conversation.id,source:source});this.typing(user_id,'set')}else{clearTimeout(this.typing_settings.timeout);this.typing_settings.timeout=setTimeout(()=>{SBF.ajax({function:'set-typing',user_id:user_id,conversation_id:-1},()=>{this.typing_settings.sent=!1})},2000)}}}else if(action=='start'||action=='stop'){let start=action=='start';if(!admin&&chat_status){if(start){$(chat_status).addClass('sb-status-typing').html(sb_('Typing'))}else{let online=this.agent_online||this.agent_id==bot_id;$(chat_status).removeClass('sb-status-typing').html(sb_(online?'Online':'Away'));if(online)$(chat_status).addClass('sb-status-online');}} 229this.typing_settings.typing=start;SBF.event('SBTyping',start)}}},showArticles:function(id=-1){let panel=tickets?main.find('.sb-panel-main .sb-panel'):chat_scroll_area.find(' > .sb-panel-articles');let code='';panel.html('').sbLoading(!0);this.showPanel('articles',CHAT_SETTINGS['articles-title']?CHAT_SETTINGS['articles-title']:'Help Center');this.getArticles(id,(articles)=>{if(id==-1){let ids=[];for(var y=0;y<this.articles_categories.length;y++){let category=this.articles_categories[y];let code_articles_category='';for(var i=0;i<articles.length;i++){let article=articles[i];if(!ids.includes(article.id)&&(!category||SBF.null(article.parent_category)||article.parent_category.includes(category.id))){code_articles_category+=`<div data-id="${article.id}"><div>${article.title}</div><span>${article.content}</span></div>`;ids.push(article.id)}} 230if(code_articles_category)code+=(category?`<div data-id="${category.id}" class="sb-title">${sb_(category.title)}</div>`:'')+code_articles_category} 231panel.html(`<div class="sb-articles">${code}</div>`)}else if(articles){panel.html(this.getArticleCode(articles))} 232panel.sbLoading(!1);SBF.event('SBArticles',{id:id,articles:articles})})},getArticles:function(id=-1,onSuccess=!1,category=!0){if(this.articles===!1||id!=-1){SBF.ajax({function:'get-articles',categories:category,articles_language:typeof SB_LANG!=ND?SB_LANG[0]:!1,id:id},(response)=>{if(id==-1){this.articles=response[0];this.articles_categories=response[1].length?response[1]:['']} 233onSuccess(id==-1?response[0]:response)})}else{if(onSuccess){if(category&&category!==!0&&category!='true'){let articles=[];for(var i=0;i<this.articles.length;i++){if(('categories' in this.articles[i]&&this.articles[i].categories.includes(category))||('parent_category' in this.articles[i]&&category==this.articles[i].parent_category))articles.push(this.articles[i]);} 234onSuccess(articles)}else onSuccess(this.articles)}else{return this.articles}}},searchArticles:function(search,button,target){if(search){$(button).sbLoading(!0);SBF.ajax({function:'search-articles',articles_language:typeof SB_LANG!=ND?SB_LANG[0]:!1,search:search},(articles)=>{let code='';let count=articles.length;if(count==0){code+=`<p class="sb-no-results">${sb_('No articles found.')}</p>`}else{for(var i=0;i<articles.length;i++){code+=`<div data-id="${articles[i]['id']}"><div>${articles[i]['title']}</div><span>${articles[i]['content']}</span></div>`}} 235$(target).html(code);$(button).sbLoading(!1)})}},setArticleRating:function(article_id,rating,onSuccess=!1){SBF.ajax({function:'article-ratings',article_id:article_id,rating:rating},(response)=>{if(onSuccess)onSuccess(response);})},articleRatingOnClick:function(button){let article=$(button).closest('.sb-article');if(!article[0].hasAttribute('data-user-rating')){$(button).parent().sbLoading();let rating=$(button).attr('data-rating')=='positive'?1:-1;let article_id=$(button).closest('.sb-article').attr('data-id');SBChat.setArticleRating(article_id,rating,()=>{SBF.storage('article-rating-'+article_id,rating);article.attr('data-user-rating',rating);$(button).parent().sbLoading(!1)})}},getArticleCode:function(article){let user_rating=SBF.storage('article-rating-'+article.i
235d);let code='';if(this.articles_categories&&!SBF.null(article.categories)){for(var i=0;i<this.articles_categories.length;i++){let category_id=this.articles_categories[i].id;if(article.categories.includes(category_id)||article.parent_category==category_id){code+=`<span data-id="${category_id}">${sb_(this.articles_categories[i].title)}</span>`}}} 236return `<div data-id="${article.id}"${user_rating ? ` data-user-rating="${user_rating}"` : ''} class="sb-article"><div class="sb-title">${article.title}<div class="sb-close sb-icon-close"></div></div><div class="sb-content">${article.content.replace(/(?:\r\n|\r|\n)/g, '<br>')}</div>${SBF.null(article.link) ? '' : `<a href="${article.link}" target="_blank" class="sb-btn-text"><i class="sb-icon-plane"></i>${sb_('Read more')}</a>`}${code ? `<div class="sb-article-category-links">${code}</div>` : ''}<div class="sb-rating"><span>${sb_('Rate and review')}</span><div><i data-rating="positive" class="sb-submit sb-icon-like"><span>${sb_('Helpful')}</span></i><i data-rating="negative" class="sb-submit sb-icon-dislike"><span>${sb_('Not helpful')}</span></i></div></div></div>`},initArticlesPage:function(){let code_articles='';let code_categories='';let cache;let panel_main;let categories={};let category_names={};articles_page=$('body').find('#sb-articles');if(!articles_page.length)articles_page=$('body');articles_page.sbLoading(!0);this.getArticles(-1,()=>{for(var i=0;i<this.articles.length;i++){let article=this.articles[i];code_articles+=`<div data-id="${article.id}"><div>${article.title}</div><span>${article.content}</span></div>`;if(!SBF.null(article.parent_category)){if(!(article.parent_category in categories))categories[article.parent_category]=[];if(!SBF.null(article.categories)){for(var j=0;j<article.categories.length;j++){if(!categories[article.parent_category].includes(article.categories[j]))categories[article.parent_category].push(article.categories[j]);}}}} 237for(var i=0;i<this.articles_categories.length;i++){category_names[this.articles_categories[i].id]=this.articles_categories[i].title} 238for(var key in categories){code_categories+=`<div class="sb-parent-category"><span data-id="${key}">${sb_(category_names[key])}</span><div class="sb-ul">`;for(var i=0;i<categories[key].length;i++){code_categories+=`<span data-id="${categories[key][i]}">${sb_(category_names[categories[key][i]])}</span>`} 239code_categories+='</div></div>'} 240articles_page.html(`<div class="sb-articles-page${CHAT_SETTINGS.rtl ? ' sb-rtl' : ''}"><div class="sb-panel-main sb-articles">${code_articles}</div><div class="sb-panel-side"><div class="sb-title">${CHAT_SETTINGS['articles-title'] ? CHAT_SETTINGS['articles-title'] : 'Help Center'}</div><div class="sb-input sb-input-btn"><input placeholder="${sb_('Search for articles...')}" autocomplete="off"><div class="sb-submit-articles sb-icon-arrow-right"></div></div><div class="sb-title">${sb_('Categories')}</div><div class="sb-article-categories"><div><span data-id="true" class="sb-active">${sb_('All articles')}</span></div>${code_categories}</div></div></div>`);articles_page.sbLoading(!1);panel_main=articles_page.find('.sb-panel-main');if(SBF.getURL('article'))articles_page.find(`.sb-articles > [data-id="${SBF.getURL('article')}"]`).click();});articles_page.on('keydown','.sb-panel-side input',function(e){if(e.which==13)$(this).next().click();});articles_page.on('click','.sb-articles > [data-id]',function(){cache=panel_main.html();panel_main.sbLoading(!0);SBChat.getArticles($(this).attr('data-id'),(article)=>{panel_main.removeClass('sb-articles').html(SBChat.getArticleCode(article));panel_main.sbLoading(!1)})});articles_page.on('click','.sb-article [data-rating]',function(){SBChat.articleRatingOnClick(this)});articles_page.on('click','.sb-article .sb-title .sb-close',function(){articles_page.find('.sb-panel-main').addClass('sb-articles').html(cache)});articles_page.on('click','.sb-submit-articles',function(){let search=$(this).parent().find('input').val();if(search){cache=panel_main.html();panel_main.html('');SBChat.searchArticles(search,this,panel_main)}else{panel_main.html(cache)} 241panel_main.addClass('sb-articles')});articles_page.on('click','.sb-article-categories [data-id]',function(){if(loading(panel_main))return;let code='';cache=panel_main.html();articles_page.find('.sb-article-categories [data-id]').sbActive(!1);$(this).sbActive(!0);SBChat.getArticles(-1,(articles)=>{for(var i=0;i<articles.length;i++){code+=`<div data-id="${articles[i].id}"><div>${articles[i]['title']}</div><span>${articles[i].content}</span></div>`} 242panel_main.addClass('sb-articles').html(code?code:`<p class="sb-no-results">${sb_('No articles found.')}</p>`);panel_main.sbLoading(!1)},$(this).attr('data-id'))})},categoryEmoji:function(category){let list=this.emoji_options.list;if(category=='all'){this.emoji_options.list_now=list}else{this.emoji_options.list_now=[];for(var i=0;i<list.length;i++){if(list[i].category.startsWith(category)){this.emoji_options.list_now.push(list[i])}}} 243this.emoji_options.range=0;this.populateEmoji(0);this.populateEmojiBar()},mouseWheelEmoji:function(e){let range=this.emoji_options.range;if(sbDelta(e)>0||(mobile&&typeof e.originalEvent.changedTouches!==ND&&this.emoji_options.touch<e.originalEvent.changedTouches[0].clientY)){range-=(range<1?0:1)}else{range+=(range>this.emoji_options.range_limit?0:1)} 244chat_emoji.find('.sb-emoji-bar > div').sbActive(!1).eq(range).sbActive(!0);this.emoji_options.range=range;this.populateEmoji(range);e.preventDefault()},insertEmoji:function(emoji){if(emoji.indexOf('.svg')>0){emoji=$.parseHTML(emoji)[0].alt} 245this.insertText(emoji);chat_emoji.sbTogglePopup()},showEmoji:function(button){if(chat_emoji.sbTogglePopup(button)){if(!admin){chat_emoji.css({left:chat_editor.offset().left+(tickets?68:20),top:chat_editor.offset().top-window.scrollY-(tickets?chat_editor.height()-330:304)})} 246if(chat_emoji.find('.sb-emoji-list > ul').html()==''){jQuery.ajax({method:'POST',url:SB_AJAX_URL,data:{function:'emoji'}}).done((response)=>{this.emoji_options.list=JSON.parse(response);this.emoji_options.list_now=this.emoji_options.list;this.populateEmoji(0);this.populateEmojiBar()})} 247SBF.deselectAll()}},populateEmoji:function(range){let code='';let per_page=mobile?42:48;let limit=range*per_page+per_page;let list_now=this.emoji_options.list_now;if(limit>list_now.length)limit=list_now.length;this.emoji_options.range_limit=list_now.length/per_page-1;this.emoji_options.range=range;for(var i=(range*per_page);i<limit;i++){code+=`<li>${list_now[i]['char']}</li>`} 248chat_emoji.find('.sb-emoji-list').html(`<ul>${code}</ul>`)},populateEmojiBar:function(){let code='<div class="sb-active"></div>';let per_page=mobile?42:49;for(var i=0;i<this.emoji_options.list_now.length/per_page-1;i++){code+='<div></div>'} 249this.emoji_options.range=0;chat_emoji.find('.sb-emoji-bar').html(code)},clickEmojiBar:function(item){let range=$(item).index();this.populateEmoji(range);this.emoji_options.range=range;chat_emoji.find('.sb-emoji-bar > div').sbActive(!1).eq(range).sbActive(!0)},searchEmoji:function(search){SBF.search(search,()=>{if(search.length>1){let list=this.emoji_options.list;let list_now=[];for(var i=0;i<list.length;i++){if(list[i].category.toLowerCase().includes(search)||list[i].name.toLowerCase().includes(search)){list_now.push(list[i])}} 250this.emoji_options.list_now=list_now}else{this.emoji_options.list_now=this.emoji_options.list} 251this.emoji_options.range=0;this.populateEmoji(0);this.populateEmojiBar()})},textareaChange:function(textarea){let value=$(textarea).val();if(admin){SBAdmin.conversations.savedReplies(textarea,value)} 252if(value){this.typing((admin&&!SBPusher.active?SB_ACTIVE_AGENT.id:activeUser().id),'set');this.activateBar()}else{this.activateBar(!1)}},insertText:function(text){let textarea=$(chat_textarea.get(0));let index=0;
252if(this.dashboard)return!1;if('selectionStart' in textarea.get(0)){index=textarea.get(0).selectionStart}else if('selection' in document){textarea.focus();let selection=document.selection.createRange();var selection_length=document.selection.createRange().text.length;selection.moveStart('character',-textarea.value.length);index=selection.text.length-selection_length} 253textarea.val(textarea.val().substr(0,index)+text+textarea.val().substr(index));textarea.focus();textarea.manualExpandTextarea();this.activateBar()},enabledAutoExpand:function(){if(chat_textarea.length)chat_textarea.autoExpandTextarea();},privacy:function(){SBF.ajax({function:'get-block-setting',value:'privacy'},(response)=>{chat_scroll_area.append(`<div class="sb-privacy sb-init-form" data-decline="${response['decline']}"><div class="sb-title">${response['title']}</div><div class="sb-text">${response['message']}</div>`+(response.link?`<a target="_blank" href="${response['link']}">${response['link-name']}</a>`:'')+`<div class="sb-buttons"><a class="sb-btn sb-approve">${response['btn-approve']}</a><a class="sb-btn sb-decline">${response['btn-decline']}</a></div></div>`);this.finalizeInit();SBF.event('SBPrivacy')});if(!this.dashboard)this.showDashboard();this.dashboard=!0;main.addClass('sb-init-form-active')},popup:function(close=!1,content=!1){if(close){let popup=main.find('.sb-popup-message');let id=popup.attr('data-id');storage('popup'+(SBF.null(id)?'':id),!0);popup.remove();return} 254setTimeout(()=>{if(!this.chat_open){if(content==!1)content=CHAT_SETTINGS.popup;main.find('.sb-popup-message').remove();main.append(`<div data-id="${'id' in content ? content['id'] : ''}" class="sb-popup-message">`+('image' in content&&content.image?`<img loading="lazy" src="${content['image']}" />`:'')+('title' in content&&content.title?`<div class="sb-top">${content['title']}</div>`:'')+`<div class="sb-text">${content['message']}</div><div class="sb-icon-close"></div></div>`);SBF.event('SBPopup',content)}},1000)},followUp:function(){if(this.followUpCheck()){if(timeout)clearTimeout(timeout);timeout=setTimeout(()=>{if(this.followUpCheck()){let settings=CHAT_SETTINGS.follow;this.sendMessage(bot_id,`[email id="sb-follow-up-form" title="${settings['title']}" message="${settings['message']}" placeholder="${settings['placeholder']}" name="${settings['name']}" last-name="${settings['last-name']}" phone="${settings['phone']}" phone-required="${settings['phone-required']}" success="${settings['success']}"]`);this.scrollBottom();SBF.storageTime('email');SBF.event('SBFollowUp')}},SBF.null(CHAT_SETTINGS.follow.delay)?(CHAT_SETTINGS['office-hours']||agents_online?15000:(SBApps.dialogflow.active()?8000:5000)):parseInt(CHAT_SETTINGS.follow.delay))}},followUpCheck:function(){return!admin&&this.conversation&&CHAT_SETTINGS.follow.active&&activeUser()&&!activeUser().get('email')&&SBF.storageTime('email',24)&&(CHAT_SETTINGS['office-hours']||!CHAT_SETTINGS.follow['disable-office-hours'])},welcome:function(){if((CHAT_SETTINGS['welcome-trigger']!='open'||this.chat_open)&&(CHAT_SETTINGS['office-hours']||!CHAT_SETTINGS['welcome-disable-office-hours'])&&CHAT_SETTINGS.welcome&&!storage('welcome')&&activeUser()){SBF.ajax({function:'get-block-setting',value:'welcome'},(response)=>{setTimeout(()=>{if(CHAT_SETTINGS['dialogflow-welcome']){if(this.conversation===!1){this.newConversation(3,-1,'',[],null,null,function(){SBApps.dialogflow.welcome(response.open,response.sound)})}else{SBApps.dialogflow.welcome(response.open,response.sound)}}else{this.sendMessage(bot_id,response.message,[],!1,!1,3);if(response.open){this.start()} 255if(response.sound){this.audio.play()}} 256this.skip=!0;SBF.event('SBWelcomeMessage')},parseInt(tickets?0:CHAT_SETTINGS['welcome-delay']));storage('welcome',!0)})}},subscribe:function(){if(CHAT_SETTINGS.subscribe&&!storage('subscribe')&&activeUser()&&SBF.null(activeUser().get('email'))&&activeUser()){setTimeout(()=>{SBF.ajax({function:'get-block-setting',value:'subscribe'},(response)=>{this.sendMessage(bot_id,response.message,[],!1,{event:'open-chat'},3);if(response.sound&&this.audio){this.audio.play()} 257this.skip=!0;storage('subscribe',!0)})},parseInt(CHAT_SETTINGS['subscribe-delay']))}},offlineMessage:function(){if(!admin&&!this.offline_message_set&&CHAT_SETTINGS.timetable&&(!CHAT_SETTINGS['office-hours']||(!agents_online&&!CHAT_SETTINGS['timetable-disable-agents']))&&SBF.storageTime('timetable',1)){let message=CHAT_SETTINGS['timetable-message'];switch(CHAT_SETTINGS['timetable-type']){case 'header':if(message[0])chat_header.find('.sb-title').html(message[0]);chat_header.find('.sb-text').html(message[1]);this.offline_message_set=!0;break;
257case 'info':chat.prepend(`<div class="sb-notify-message sb-rich-cnt"><div class="sb-cnt"><div class="sb-message">${message[0] ? `<b>${message[0]}</b>` : ''}${message[1]}</div></div></div>`);main.addClass('sb-notify-active');this.offline_message_set=!0;break;default:setTimeout(()=>{if(this.conversation){this.sendMessage(bot_id,CHAT_SETTINGS['timetable-hide']?`${message[0] ? `*${message[0]}*\n` : ''}${message[1]}`:'[timetable]');this.scrollBottom();this.offline_message_set=!0;SBF.storageTime('timetable')}},5000)}}},slackMessage:function(user_id,full_name,profile_image,message,attachments=[]){if(!this.conversation||(!message&&!attachments.length))return!1;let conversation_id=this.conversation.id;SBF.ajax({function:'send-slack-message',user_id:user_id,full_name:full_name,profile_image:profile_image,conversation_id:conversation_id,message:message,attachments:attachments,channel:this.slack_channel[0]==activeUser().id?this.slack_channel[1]:!1},(response)=>{this.slack_channel=[activeUser().id,response[1]];SBF.event('SBSlackMessageSent',{message:message,conversation_id:conversation_id,slack_channel:response[1]})})},deleteMessage:function(message_id){SBF.ajax({function:'delete-message',message_id:message_id},()=>{if(this.conversation)this.conversation.deleteMessage(message_id);chat.find(`[data-id="${message_id}"]`).remove();SBF.event('SBMessageDeleted',message_id)})},registration:function(check=!1,type=CHAT_SETTINGS['registration-required']){if(check)return CHAT_SETTINGS['registration-required']&&(!CHAT_SETTINGS['registration-offline']||!agents_online)&&(!CHAT_SETTINGS['registration-timetable']||!CHAT_SETTINGS['office-hours'])&&(activeUser()===!1||['visitor','lead'].includes(activeUser().type));chat_scroll_area.append(SBRichMessages.generate({},CHAT_SETTINGS['registration-link']?'login':type,'sb-init-form'));if(!this.dashboard)this.showDashboard();this.dashboard=!0;this.finalizeInit();main.addClass('sb-init-form-active')},activateBar:function(show=!0){chat_editor.find('.sb-bar').sbActive(show)},addUserAndLogin:function(onSuccess=!1,lead=!1){let settings=typeof SB_DEFAULT_USER!=ND&&SB_DEFAULT_USER?SB_DEFAULT_USER:{};settings.user_type=lead?'lead':'visitor';
257SBF.ajax({function:'add-user-and-login',settings:settings,settings_extra:settings.extra},(response)=>{SBF.loginCookie(response[1]);activeUser(new SBUser(response[0]));SBPusher.start();if(!SBPusher.active)SBChat.automations.run_all();if(onSuccess){onSuccess(response)}})},isInitDashboard:function(){return CHAT_SETTINGS['init-dashboard']||(activeUser()&&activeUser().conversations.length>1)},uploadResponse:function(response){response=JSON.parse(response);if(response[0]=='success'){if(response[1]=='extension_error'){let message='The file you are trying to upload has an extension that is not allowed.';if(admin)SBAdmin.dialog(message,'info');else alert(message)}else if($(upload_target).hasClass('sb-input-image')){$(upload_target).find('.image').attr('data-value','').css('background-image','');setTimeout(()=>{$(upload_target).find('.image').attr('data-value',response[1]).css('background-image',`url("${response[1]}?v=${SBF.random()}")`).append('<i class="sb-icon-close"></i>');upload_target=!1},500)}else{let name=response[1].substr(response[1].lastIndexOf('/')+1);chat_editor.find('.sb-attachments').append(`<div data-name="${name}" data-value="${response[1]}">${name}<i class="sb-icon-close"></i></div>`);SBChat.activateBar()}}else{SBF.error(response[1],'sb-upload-files.change')} 258this.busy(!1)},closeChat:function(ajax=!0){let id=this.conversation.id;SBChat.clear();if(ajax){SBF.ajax({function:'update-conversation-status',conversation_id:id,status_code:3},()=>{close()})}else{close()} 259function close(){main.find(`li[data-conversation-id="${id}"]`).remove();force_action='new-conversation';SBChat.clear();storage('open-conversation','');activeUser().removeConversation(id);if(!CHAT_SETTINGS['disable-dashboard']){SBChat.showDashboard()}}},automations:{history:[],busy:[],scroll_position_intervals:{},timeout_queue:[],run_all:function(){let automations=CHAT_SETTINGS.automations;for(var i=0;i<automations.length;i++){let automation=automations[i];let conditions=automation.conditions;let count=conditions.length;let valid=count==0;let browsing_time=!1;let scroll_position=!1;let server_conditions=!1;for(var j=0;j<conditions.length;j++){let criteria=conditions[j][1];valid=!1;switch(conditions[j][0]){case 'browsing_time':valid=!0;browsing_time=criteria;break;case 'scroll_position':valid=!0;scroll_position=criteria;break;case 'include_urls':case 'exclude_urls':case 'referring':let url=conditions[j][0]=='referring'?document.referrer:window.location.href;let checks=conditions[j][2].split(',');let include=conditions[j][0]!='exclude_urls';if(!include)valid=!0;url=url.replace('https://','').replace('http://','').replace('www.','');for(var y=0;y<checks.length;y++){checks[y]=$.trim(checks[y].replace('https://','').replace('http://','').replace('www.',''));if((criteria=='contains'&&url.indexOf(checks[y])!=-1)||(criteria=='does-not-contain'&&url.indexOf(checks[y])==-1)||(criteria=='is-exactly'&&checks[y]==url)||(criteria=='is-not'&&checks[y]!=url)){valid=include;break}} 260break;case 'custom_variable':let variable=criteria.split('=');if(variable[0]in window&&window[variable[0]]==variable[1]){valid=!0} 261break;case 'returning_visitor':case 'user_type':case 'cities':case 'languages':case 'countries':valid=activeUser();server_conditions=!0;break;case 'user_phone':valid=activeUser()&&!SBF.null(activeUser().getExtra('phone'));break;case 'user_email':valid=activeUser()&&!SBF.null(activeUser().get('email'));break;default:valid=!0} 262if(!valid)break} 263if(['messages','emails','sms'].includes(automation.type)&&!activeUser())valid=!1;if(valid){if(server_conditions){if(!(automation.id in this.busy)){SBF.ajax({function:'automations-validate',automation:automation},(response)=>{if(response!==!1){this.run_all_final(automation,scroll_position,browsing_time)} 264delete this.busy[automation.id]});this.busy[automation.id]=!0}}else{this.run_all_final(automation,scroll_position,browsing_time)}}}},run_all_final:function(automation,scroll_position,browsing_time){if(scroll_position){this.scroll_position_intervals[automation.id]=setInterval(()=>{if($(window).scrollTop()>
264parseInt(scroll_position)){if(browsing_time)setTimeout(()=>{this.run(automation)},parseInt(browsing_time)*1000);else this.run(automation);clearInterval(this.scroll_position_intervals[automation.id])}},1000)}else if(browsing_time){if(!this.timeout_queue.includes(automation.id)){setTimeout(()=>{this.run(automation)},parseInt(browsing_time)*1000);this.timeout_queue.push(automation.id)}}else this.run(automation)},run:function(automation){if(this.history.includes(automation.id))return;switch(automation.type){case 'messages':case 'emails':case 'sms':if((!SBPusher.active||SBPusher.started)&&!(automation.id in this.busy)){if(automation.type=='messages'&&SBChat.chat_open){let last_message=SBChat.conversation?SBChat.conversation.getLastUserMessage(!1,'no-bot'):!1;if(last_message&&((Date.now()-600000)<SBF.unix(last_message.get('creation_time'))))return} 265SBF.ajax({function:'automations-run',automation:automation},(response)=>{if(response!==!1){this.history.push(automation.id);if(automation.type=='messages'&&!SBPusher.active)SBChat.updateConversations();} 266delete this.busy[automation.id]});this.busy[automation.id]=!0} 267break;case 'popups':if(!storage('popup'+automation.id)){setTimeout(()=>{if(!SBChat.chat_open){SBChat.popup(!1,{id:automation.id,image:automation.profile_image,title:automation.title,message:automation.message});this.history.push(automation.id)}else if(automation.fallback){let last_message=SBChat.conversation?SBChat.conversation.getLastUserMessage(!1,'no-bot'):!1;if(!last_message||((Date.now()-600000)>SBF.unix(last_message.get('creation_time')))){SBChat.sendMessage(bot_id,(SBF.null(automation.title)?'':`*${automation.title}*\n`)+automation.message,[],!1,!1,0);storage('popup'+automation.id,!0);this.history.push(automation.id)}}},1000)} 268break;case 'design':if(automation.background){chat_header.css('background-image',`url("${automation.background}")`)} 269if(automation.brand){chat_header.find('.sb-brand img').attr('src',automation.brand)} 270if(automation.title){chat_header.find('.sb-title').html(automation.title)} 271if(automation.message){chat_header.find('.sb-text').html(automation.message)} 272if(automation.icon){main.find('.sb-chat-btn .sb-icon').attr('src',automation.icon)} 273if(automation.color_1||automation.color_2||automation.color_3){SBF.ajax({function:'chat-css',color_1:automation.color_1,color_2:automation.color_2,color_3:automation.color_3},(response)=>{global.append(`<style>${response}</style>`)})} 274this.history.push(automation.id);break;case 'more':if(automation.department){SBChat.default_department=automation.department} 275if(automation.agent){SBChat.default_agent=automation.agent} 276break}}},flashNotification:function(){clearInterval(interval);interval=setInterval(function(){document.title=document.title==document_title?sb_('New message...'):document_title},2000)},calculateLabelDates:function(){if(admin||this.chat_open)label_date_items=chat.find('.sb-label-date');},calculateLabelDateFirst:function(){if(!this.conversation.messages.length)chat.append(`<div class="sb-label-date"><span>${sb_('Today')}</span></div>`);},playSound:function(repeat=!1){this.audio.play();let index=repeat?repeat:(admin?SB_ADMIN_SETTINGS.sound.repeat:CHAT_SETTINGS.sound.repeat);if(index){clearInterval(this.audio_interval);this.audio_interval=setInterval(()=>{this.audio.play();index--;if(!index)clearInterval(this.audio_interval);},this.audio.duration*1000+1500)}}} 277window.SBChat=SBChat;var SBRichMessages={rich_messsages:{'email':'','button':'','video':'','image':'','woocommerce-button':'','chips':'<div class="sb-buttons">[options]</div>','buttons':'<div class="sb-buttons">[options]</div>','select':'<div class="sb-select"><p></p><ul>[options]</ul></div>','list':'<div class="sb-text-list">[values]</div>','list-image':'<div class="sb-image-list">[values]</div>','table':'<table><tbody>[header][values]</tbody></table>','inputs':'<div class="sb-form">[values]</div>','rating':`<div class="sb-rating" data-success-negative="[success-negative]"><span>[label]</span><div><i data-rating="positive" class="sb-submit sb-icon-like"><span>[positive]</span></i><i data-rating="negative" class="sb-submit sb-icon-dislike"><span>[negative]</span></i></div></div>`,'card':'<div class="sb-card">[settings]</div>','share':'<div class="sb-social-buttons">[settings]</div>','slider':'<div class="sb-slider"><div>[items]</div></div><div class="sb-slider-arrow sb-icon-arrow-left[class]"></div><div class="sb-slider-arrow sb-icon-arrow-right sb-active[class]"></div>','slider-images':'<div class="sb-slider sb-slider-images"><div>[items]</div></div><div class="sb-slider-arrow sb-icon-arrow-left[class]"></div><div class="sb-slider-arrow sb-icon-arrow-right sb-active[class]"></div>','phone':''},cache:{},generate:function(settings,name,css=''){let content;let next=!0;let id='id' in settings?settings.id:SBF.random();let render=new SBMessage({});if(name in this.rich_messsages){content=this.rich_messsages[name]}else if(name in this.cache){content=this.cache[name]}else if(admin||(!SBF.null(CHAT_SETTINGS)&&'rich-messages' in CHAT_SETTINGS&&CHAT_SETTINGS['rich-messages'].includes(name))){if
277(!('id' in settings))id=name;content='<div class="sb-rich-loading sb-loading"></div>';SBF.ajax({function:'get-rich-message',name:name,settings:settings},(response)=>{response=render.render(this.initInputs(response));if(name=='timetable')response=this.timetable(response);main.find(`.sb-rich-message[id="${id}"]`).html(`<div class="sb-content">${response}</div>`);this.cache[name]=response;SBChat.scrollBottom(SBChat.dashboard)});next=!1}else{return!1} 278let disabled='disabled' in settings;if(next){let options;let code='';switch(name){case 'rating':content=content.replace('[label]',sb_(SBF.null(settings.label)?'Rate and review':settings.label)).replace('[success-negative]',sb_(SBF.null(settings['success-negative'])?'Not helpful':settings['success-negative'])).replace('[positive]',sb_(SBF.null(settings['label-positive'])?'Helpful':settings['label-positive'])).replace('[negative]',sb_(SBF.null(settings['label-negative'])?'Not helpful':settings['label-negative']));break;case 'email':let inputs=[];let email=activeUser().get('email');let default_name=activeUser().get('last_name').charAt(0)=='#';if(settings.name=='true')inputs.push(['first_name',settings['last-name']=='true'?'First name':'Name',default_name?'':(settings['last-name']=='true'?activeUser().get('first_name'):activeUser().name),'text',!0]);if(settings['last-name']=='true')inputs.push(['last_name','Last name',default_name?'':activeUser().get('last_name'),'text',!0]);for(var i=0;i<inputs.length;i++){content+=`<div id="${inputs[i][0]}" data-type="text" class="sb-input sb-input-text"><span class="${inputs[i][2] == '' ? '' : 'sb-active sb-filled'}">${sb_(inputs[i][1])}</span><input value="${inputs[i][2]}" autocomplete="false" type="${inputs[i][3]}" ${inputs[i][4] ? 'required' : ''}></div>`} 279if(settings.phone=='true'){let phone=activeUser().getExtra('phone');let phone_codes=admin?[]:CHAT_SETTINGS['phone-codes'];let select='';let single=phone_codes.length===1;if(single){select=`<input disabled value="${phone_codes[0]}">`}else{for(var i=0;i<phone_codes.length;i++){select+=`<option value="+${phone_codes[i]}">+${phone_codes[i]}</option>`} 280select=`<select><option value="">+00</option>${select}</select>`} 281content+=`<div id="phone" data-type="select-input" class="sb-input sb-input-select-input"><span class="${phone == '' ? '' : 'sb-active sb-filled'}">${sb_('Phone')}</span><div>${select}</div><input value="${admin ? '' : phone}" pattern="[0-9]+" autocomplete="false" type="tel" ${settings['phone-required'] != 'false' ? 'required' : ''}></div>`} 282content+=`<div id="email" data-type="email" class="sb-input sb-input-btn"><span class="${email == '' ? '' : 'sb-active sb-filled'}">${sb_(SBF.null(settings.placeholder) ? 'Email' : settings['placeholder'])}</span><input value="${email}" autocomplete="off" type="email" required><div class="sb-submit sb-icon-arrow-right"></div></div>`;break;case 'image':content=`<div class="sb-image"><img loading="lazy" src="${settings['url']}"></div>`;break;case 'video':content=`<iframe loading="lazy"${'height' in settings ? ` height="${settings['height']}"` : ''} src="${settings['type'] == 'youtube' ? '//www.youtube.com/embed/' : '//player.vimeo.com/video/'}${settings['id']}" allowfullscreen></iframe>`;break;case 'select':options=settings.options.split(',');for(var i=0;i<options.length;i++){code+=`<li data-value="${SBF.stringToSlug(options[i])}">${sb_(options[i])}</li>`} 283content=content.replace('[options]',code);break;case 'chips':case 'buttons':options=settings.options.split(',');for(var i=0;i<options.length;i++){code+=`<div class="sb-btn sb-submit">${sb_(options[i])}</div>`} 284content=content.replace('[options]',code);break;case 'button':content=`<a href="${settings['link'].replace(/<i>/g, '_').replace(/<\/i>/g, '_')}"${'target' in settings ? ' target="_blank"' : ''} class="sb-rich-btn sb-btn${settings['style'] == 'link' ? '-text' : ''}">${sb_(settings['name'])}</a>`;break;case 'list':options=settings.values.split(',');let list=name=='list';let list_double=list&&options.length&&options[0].indexOf(':')>0;if(list&&!list_double){content=content.replace('sb-text-list','sb-text-list sb-text-list-single')} 285for(var i=0;i<options.length;i++){code+=list_double?`<div><div>${sb_(options[i].split(':')[0])}</div><div>${sb_(options[i].split(':')[1])}</div></div>`:`<div>${$.trim(sb_(options[i]))}</div>`} 286content=content.replace('[values]',code);break;case 'list-image':options=settings.values.split(',');for(var i=0;i<options.length;i++){let item=options[i].replace('://','///').split(':');code+=`<div><div class="sb-thumb" style="background-image:url('${item[0].replace('///', '://')}')"></div><div class="sb-list-title">${item[1]}</div><div>${item[2]}</div></div>`} 287content=content.replace('[values]',code);break;case 'table':options=settings.header.split(',');code+='<tr>';for(var i=0;i<options.length;i++){code+=`<th>${options[i]}</th>`} 288code+='</tr>';content=content.replace('[header]',code);code='';options=settings.values.split(',');for(var i=0;i<options.length;i++){let tds=options[i].split(':');code+='<tr>';for(var i=0;i<tds.length;i++){code+=`<td>${tds[i]}</td>`} 289code+='</tr>'} 290content=content.replace('[values]',code);break;case 'inputs':options=settings.values.split(',');for(var i=0;i<options.length;i++){if(disabled&&options[i]=='')continue;code+=`<div id="${SBF.stringToSlug(options[i])}" data-type="text" class="sb-input sb-input-text"><span>${sb_(options[i])}</span><input autocomplete="false" type="text" required></div>`} 291code+='<div class="sb-btn sb-submit">'+sb_('button' in settings?settings.button:'Send now')+'</div>';content=content.replace('[values]',code);break;case 'card':code=`${'image' in settings ? `<div class="sb-card-img" style="background-image:url('${settings['image']}')"></div>` : ''}<div class="sb-card-header">${settings['header']}</div>${'extra' in settings ? `<div class="sb-card-extra">${settings.extra}</div>` : ''}${'description' in settings ? `<div class="sb-card-description">${settings.description}</div>` : ''}${'link' in settings ? `<a class="sb-card-btn" href="${settings['link']}"${'target' in settings?' target="_blank"':''}>${sb_(settings['link-text'])}</a>` : ''}`;content=content.replace('[settings]',code);break;case 'share':let channels='channels' in settings?settings.channels.replace(/ /g,'').split(','):['fb','tw','li','wa','pi'];let link='';for(var i=0;i<channels.length;i++){switch(channels[i]){case 'fb':link='www.facebook.com/sharer.php?u=';break;case 'tw':link='twitter.com/intent/tweet?url=';break;case 'li':link='www.linkedin.com/sharing/share-offsite/?url=';break;
291case 'wa':link='web.whatsapp.com/send?text=';break;case 'pi':link='www.pinterest.com/pin/create/button/?url=';break} 292code+=`<div class="sb-${channels[i]} sb-icon-social-${channels[i]}" data-link="https://${link}${settings['link']}"></div>`} 293content=content.replace('[settings]',code);break;case 'slider':let count=0;for(var i=1;i<16;i++){if(('header-'+i)in settings){code+=`<div>${('image-' + i) in settings ? `<div class="sb-card-img" style="background-image:url('${settings['image-' + i]}')"></div>` : ''}<div class="sb-card-header">${settings['header-' + i]}</div>${('extra-' + i) in settings ? `<div class="sb-card-extra">${settings['extra-'+i]}</div>` : ''}${('description-' + i) in settings ? `<div class="sb-card-description">${settings['description-'+i]}</div>` : ''}${('link-' + i) in settings ? `<a class="sb-card-btn" href="${settings['link-' + i]}"${'target' in settings?' target="_blank"':''}>${sb_(settings['link-text-'+i])}</a>` : ''}</div>`;count++}else{break}} 294content=content.replace('[items]',code).replace(/\[class\]/g,count==1?' sb-hide':'');break;case 'slider-images':if('images' in settings){let images=settings.images.split(',');for(var i=0;i<images.length;i++){code+=`<div class="sb-card-img" data-value="${images[i]}" style="background-image:url('${images[i]}')"></div>`} 295content=content.replace(/\[class\]/g,images.length==1?' sb-hide':'')} 296content=content.replace('[items]',code);break;case 'woocommerce-button':settings.settings=`checkout:${settings['checkout']},coupon:${settings['coupon']}`;content=`<a href="#" data-ids="${settings['ids']}" class="sb-rich-btn sb-btn">${settings['name']}</a>`;break}} 297return `<div id="${id}" data-type="${name}"${disabled ? 'disabled="true"' : ''}${'settings' in settings ? ` data-settings="${settings['settings']}"` : ''}class="sb-rich-message sb-rich-${name} ${css}">`+('title' in settings?`<div class="sb-top">${render.render(sb_(settings['title']))}</div>`:'')+('message' in settings?`<div class="sb-text">${render.render(sb_(settings['message']))}</div>`:'')+`<div class="sb-content">${content}</div><div data-success="${'success' in settings ? settings['success'].replace(/"/g, '') : ''}" class="sb-info"></div></div>`},submit:function(area,type,element){if(!admin&&!loading(element)&&!this.is_busy){let error='';let shortcode='';let parameters={};let success=$(area).find('[data-success]').length?$(area).find('[data-success]').attr('data-success'):'';let rich_message_id=$(area).closest('.sb-rich-message').attr('id');let message_id=$(area).closest('[data-id]').attr('data-id');let message='';let payload={'rich-messages':{}};let user_settings=activeUser()==!1?{'profile_image':['',''],'first_name':['',''],'last_name':['',''],'email':['',''],'password':['',''],'user_type':['','']}:{'profile_image':[activeUser().image,''],'first_name':[activeUser().get('first_name'),''],'last_name':[activeUser().get('last_name'),''],'email':[activeUser().get('email'),''],'password':['',''],'user_type':['','']};let settings={};let input=$(element);let dialogflow_response='';let dialogflow_parameters=!1;let active_conversation=SBChat.conversation!==!1;let settings_extra={};let payload_settings={};if(SBF.null(message_id)){message_id=-1}else{let item=SBChat.conversation.getMessage(message_id);message=item.message;payload=item.payload();if(!('rich-messages' in payload)){payload['rich-messages']={}}} 298if(!$(element).hasClass('sb-btn')&&!$(element).hasClass('sb-select')&&!$(element).hasClass('sb-submit')){input=$(element).closest('.sb-btn,.sb-select')} 299$(area).find('.sb-info').html('').sbActive(!1);switch(type){case 'email':let is_last_name='last_name' in settings;settings=SBForm.getAll(area);if('first_name' in settings){user_settings.user_type=['user',''];if(!is_last_name)user_settings.last_name=['','']} 300if('phone' in settings){settings_extra={'phone':[settings.phone[0],'Phone']}
300} 301$.extend(user_settings,settings);error='Please fill in all required fields and make sure the email is valid.';if(success)success=sb_(success).replace('{user_email}',user_settings.email[0]).replace('{user_name_}',user_settings.first_name[0]+(is_last_name?(' '+user_settings.last_name[0]):''));payload['rich-messages'][rich_message_id]={type:type,result:settings};payload.event='update-user';parameters={function:'update-user-and-message',settings:user_settings,settings_extra:settings_extra,payload:payload};dialogflow_parameters={settings:user_settings,settings_extra:settings_extra};break;case 'registration':settings_extra=SBForm.getAll(area.find('.sb-form-extra'));$.extend(user_settings,SBForm.getAll(area.find('.sb-form-main')));payload_settings=$.extend({},user_settings);if(success){success=sb_(success)} 302if(CHAT_SETTINGS['registration-details']){success+='[list values="';for(var key in user_settings){let value=user_settings[key][0].replace(/:|,/g,'');if(value){if(key=='profile_image'){value=value.substr(value.lastIndexOf('/')+1)} 303if(key=='password'||key=='password-check'){value='********';payload_settings[key]='********'} 304success+=user_settings[key][1]==''?'':`${sb_(user_settings[key][1].replace(/:|,/g, ''))}:${value},`}} 305for(var key in settings_extra){if(settings_extra[key][0]){success+=`${sb_(settings_extra[key][1].replace(/:|,/g, ''))}:${settings_extra[key][0].replace(/:|,/g, '')},`}} 306success=success.slice(0,-1)+'"]'} 307user_settings.user_type=['user',''];payload['rich-messages'][rich_message_id]={type:type,result:{user:payload_settings,extra:settings_extra}};payload.event='update-user';parameters={function:activeUser()?'update-user-and-message':'add-user-and-login',settings:user_settings,settings_extra:settings_extra,payload:payload};error=SBForm.getRegistrationErrorMessage(area);dialogflow_parameters={settings:user_settings,settings_extra:settings_extra};break;case 'rating':let rating=$(element).attr('data-rating');let agent=SBChat.conversation.getLastUserMessage(!1,!0);success=sb_(rating=='positive'?(success?success:sb_('Helpful')):$(element).closest('.sb-rating').attr('data-success-negative'));settings={conversation_id:SBChat.conversation.id,agent_id:agent?agent.get('user_id'):bot_id,user_id:activeUser().id,message:area.find('textarea').val(),rating:(rating=='positive'?1:-1)};payload['rich-messages'][rich_message_id]={type:type,result:settings};parameters={function:'set-rating',payload:payload,settings:settings};dialogflow_response=rating;break;case 'chips':case 'select':case 'buttons':settings=SBF.escape($(element).html());if(success)success=sb_(success)+` *${settings}*`;payload['rich-messages'][rich_message_id]={type:type,result:settings};parameters={function:'update-message',payload:payload};dialogflow_response=settings;if(type=='chips'){SBChat.sendMessage(activeUser().id,settings,[],!1,{id:rich_message_id,event:'chips-click',result:settings},rich_message_id=='sb-human-takeover'&&input.index()==0?2:!1);if(rich_message_id=='sb-human-takeover'&&$(element).index()==0){SBApps.dialogflow.humanTakeover()} 308$(element).closest('.sb-content').remove()} 309break;case 'inputs':settings=SBForm.getAll(area);error='All fields are required.';if(success){success=sb_(success)+' [list values="';for(var key in settings){success+=`${sb_(settings[key][1].replace(/:|,/g, ''))}:${settings[key][0].replace(/:|,/g, '')},`} 310success=success.slice(0,-1)+'"]'} 311payload['rich-messages'][rich_message_id]={type:type,result:settings};parameters={function:'update-message',payload:payload};dialogflow_parameters={settings:settings};break} 312shortcode=message.substr(message.indexOf('['+type)) 313shortcode=shortcode.substr(0,shortcode.indexOf(']')+1);if(error&&SBForm.errors(area)){SBForm.showErrorMessage(area,error);input.sbLoading(!1);if(SBChat.dashboard||(active_conversation&&SBChat.conversation.getLastMessage().id==message_id)){SBChat.scrollBottom()} 314return!1} 315if(!success&&type!='registration'){let shortcode_settings=this.shortcode(shortcode);let title='title' in shortcode_settings[1]?`title="${shortcode_settings[1]['title']}"`:'';let message='message' in shortcode_settings[1]?`message="${shortcode_settings[1]['message']}"`:'';let value='';if(['inputs','email'].includes(type)){for(var key in settings){value+=settings[key][0]+','} 316value=`values="${value.slice(0, -1)}"`}else{value=`options="${settings}"`}
317success=`[${type == 'email' ? 'inputs' : type} ${title} ${message} ${value} disabled="true"]`} 318if(message_id!=-1){$.extend(parameters,{message_id:message_id,message:message?message.replace(shortcode,success):success,payload:payload})} 319SBF.ajax(parameters,(response)=>{if(response!=!1&&!SBF.errorValidation(response)){switch(type){case 'email':for(var key in user_settings){activeUser().set(key,user_settings[key][0])} 320for(var key in settings_extra){activeUser().setExtra(key,settings_extra[key][0])} 321SBF.loginCookie(response[1]);if(rich_message_id=='sb-subscribe-form'){SBF.ajax({function:'subscribe-email',email:activeUser().get('email')})} 322SBChat.automations.run_all();SBF.event('SBNewEmailAddress',{id:rich_message_id,name:activeUser().name,email:activeUser().get('email')});break;case 'registration':SBF.loginCookie(response[1]);user_settings.id=[response[0].id];if(!activeUser()){activeUser(new SBUser(response[0]));for(var key in settings_extra){activeUser().setExtra(key,settings_extra[key][0])} 323SBPusher.start();SBChat.initChat();if((!CHAT_SETTINGS['init-dashboard']||!main.find('.sb-departments-list').length)&&success)SBChat.sendMessage(bot_id,success,[],!1,!1,3);}else{for(var key in user_settings){activeUser().set(key,user_settings[key][0])} 324for(var key in settings_extra){activeUser().setExtra(key,settings_extra[key][0])} 325SBChat.automations.run_all()} 326if(SBChat.dashboard){main.removeClass('sb-init-form-active');$(area).remove();if(!SBChat.isInitDashboard())SBChat.hideDashboard();} 327if(CHAT_SETTINGS['wp-registration']&&'email' in user_settings&&'password' in user_settings){SBApps.wordpress.ajax('wp-registration',{user_id:response[0].id,first_name:response[0].first_name,last_name:response[0].last_name,password:user_settings.password[0],email:user_settings.email[0]})}else if(CHAT_SETTINGS['wp-users-system']=='wp'){SBApps.wordpress.ajax('wp-login',{user:user_settings.email[0],password:user_settings.password[0]})} 328delete this.cache.registration;setTimeout(()=>{SBF.event('SBRegistrationForm',{id:rich_message_id,conversation_id:SBChat.conversation?SBChat.conversation.id:!1,user:user_settings,extra:payload['rich-messages'][rich_message_id].result.extra})},5000);break} 329if(message_id==-1){$(element).closest('.sb-rich-message').html(success)}else if((!('type' in payload)||payload.type!='close-message')&&!dialogflow_human_takeover){SBChat.setConversationStatus(2)} 330if(!['login','chips','rating'].includes(type)&&(CHAT_SETTINGS['dialogflow-send-user-details']||!['email','registration'].includes(type))){SBApps.dialogflow.message(`${rich_message_id}${dialogflow_response ? ('|' + dialogflow_response) : ''}`,[],!1,dialogflow_parameters)} 331if(CHAT_SETTINGS['slack-active']&&(!dialogflow_human_takeover||SBApps.dialogflow.humanTakeoverActive())){SBChat.slackMessage(activeUser().id,activeUser().name,activeUser().image,success)} 332if(SBPusher.active)SBChat.update();if(type!='registration'&&type!='email')SBF.event('SBRichMessageSubmit',{result:response,data:payload['rich-messages'][rich_message_id],id:rich_message_id})}else{SBForm.showErrorMessage(area,SBForm.getRegistrationErrorMessage(response,'response'));if(SBChat.dashboard){SBChat.scrollBottom()} 333input.sbLoading(!1)}})}},shortcode:function(shortcode){if(shortcode.indexOf(' ')<0){return[shortcode.slice(1,-1),{}]} 334let result={};let shortcode_name=shortcode.substr(1,shortcode.indexOf(' ')-1);shortcode=shortcode.slice(1,-1).substr(shortcode_name.length+1);let settings=shortcode.split('" ');for(var i=0;i<settings.length;i++){if(settings[i].includes('=')){let item=[settings[i].substr(0,settings[i].indexOf('=')),settings[i].substr(settings[i].indexOf('=')+2)];result[$.trim(item[0])]=item[1].replace(/"/g,'')}} 335return[shortcode_name,result]},initInputs:function(code){code=$($.parseHTML('<div>'+code+'</div>'));code.find('.sb-input input').each(function(){if($(this).val()){$(this).siblings().addClass('sb-active sb-filled')}});return code.html()},timetable:function(code){let table=$($.parseHTML(`<div>${code}</div>`));let offset=table.find('[data-offset]').attr('data-offset');offset=SBF.null(offset)?0:parseInt(offset);table.find('[data-time]').each(function(){let times=$(this).attr('data-time').split('|');code='' 336for(var i=0;i<times.length;i++){if(times[i]=='closed'){code+=sb_('Closed');break}else if(times[i]){let hm=times[i].split(':');
336let time=SBF.convertUTCDateToLocalDate(`01/01/2000 ${hm[0]}:${hm[1]}`,offset);code+=time.toLocaleTimeString([],{hour:'2-digit',minute:'2-digit'})+(i==0||i==2?`<span>${sb_('to')}</span>`:i==1&×[i+1]?`<br />`:'')}} 337table.find(' > div > span').html(`<i class="sb-icon-clock"></i> ${sb_('Time zone')} ${Intl.DateTimeFormat().resolvedOptions().timeZone}`);$(this).html(code)});return table.html()},sliderChange:function(id,direction='left'){let slider=chat.find(`#${id}`);if(slider.length&&!slider.hasClass('sb-moving')){let items=slider.find('.sb-slider > div > div');let item=items.eq(0);let width=Math.ceil(item.closest('.sb-slider').width());let negative=(direction=='right'?-1:1);let margin=parseFloat(parseFloat(parseFloat(item.css('margin-left'))+(width*negative)).toFixed(2))+(-0.5*negative);let check=width*(items.length-1)*-1;if(margin<1&&margin>=check){item.css('margin-left',margin+'px');slider.addClass('sb-moving');setTimeout(()=>{slider.removeClass('sb-moving')},1200)} 338slider.find('.sb-icon-arrow-right').sbActive(!(check>(margin-15)&&check<(margin+15)));slider.find('.sb-icon-arrow-left').sbActive(margin<-10)}}} 339var SBForm={getAll:function(area){let settings={};$(area).find('.sb-input[id]').each((i,element)=>{settings[$(element).attr('id')]=this.get(element)});return settings}
339,get:function(input){input=$(input);let type=input.data('type');let name=sb_(SBF.escape(input.find(' > span').html()));switch(type){case 'image':let url=input.find('.image').attr('data-value');return[SBF.null(url)?'':url,name];case 'select':return[SBF.escape(input.find('select').val()),name];case 'select-input':let select=input.find('select,input[disabled]');let prepend=select.val();return[SBF.escape((select.is('select')||select.is('input')?prepend:input.find('> div').html())+input.find('input[type="tel"]').val()),name];default:let target=input.find('input');return[SBF.escape(target.length?target.val():input.find('[data-value]').attr('data-value')),name]}},set:function(item,value){item=$(item);if(item.length){let type=item.data('type');switch(type){case 'image':if(value==''){item.find('.image').removeAttr('data-value').removeAttr('style')}else{item.find('.image').attr('data-value',value).css('background-image',`url("${value}")`)} 340break;case 'select':item.find('select').val(value);break;default:item.find('input,textarea').val(value);break} 341return!0} 342return!1},clear:function(area){$(area).find('.sb-input,.sb-input-setting').each((i,element)=>{this.set(element,'');$(element).find('input, select, textarea').removeClass('sb-error')});this.set($(area).find('#user_type'),'user')},errors:function(area){let errors=!1;let items=$(area).find('input, select, textarea').removeClass('sb-error');items.each(function(i){let value=$.trim($(this).val());let type=$(this).attr('type');let required=$(this).prop('required');if((required&&value=='')||((required||value)&&((type=='password'&&(value.length<8||(items.length>(i+1)&&items.eq(i+1).attr('type')=='password'&&items.eq(i+1).val()!=value)))||(type=='email'&&(value.indexOf('@')<0||value.indexOf('.')<0||/;|:|\/|\\|,|#|"|!|=|\+|\*|{|}|[|]|£|\$|â¬|~|'|>|<|\^|&/.test(value)))||(type=='tel'&&value&&($(this).parent().find('select').val()==''||isNaN(value)||value.includes('+')||value.length<5))))){errors=!0;$(this).addClass('sb-error')}});items=$(area).find('[data-required]').removeClass('sb-error');items.each(function(){if(SBF.null($(this).attr('data-value'))){$(this).addClass('sb-error');errors=!0}});return errors},showErrorMessage:function(area,message){$(area).find('.sb-info').html(sb_(message)).sbActive(!0);clearTimeout(timeout);timeout=setTimeout(function(){$(area).find('.sb-info').sbActive(!1)},7000)},showSuccessMessage:function(area,message){$(area).find('.sb-info').remove();$(area).addClass('sb-success').find('.sb-content').html(`<div class="sb-text">${message}</div>`)},getRegistrationErrorMessage(area_or_response,type='validation'){if(type=='response')return SBF.errorValidation(area_or_response,'duplicate-email')?'This email is already in use. Please use another email.':(SBF.errorValidation(area_or_response,'duplicate-phone')?'This phone number is already in use. Please use another number.':'Error. Please check your information and try again.') 343let name=$(area_or_response).find('#last_name').length?'First name, last name':'Name';let phone=$(area_or_response).find('#phone [required]').length?', phone number':'';let email=$(area_or_response).find('#email').length?', email':'';let password=$(area_or_response).find('#password').length?', and a password (8 character minimum)':'';return `${name}${email}${phone}${password} ${(email + phone + password) == '' ? 'is' : 'are'} required.`}} 344window.SBForm=SBForm;var SBApps={login:function(){if(this.is('wp')&&typeof SB_WP_ACTIVE_USER!=ND&&CHAT_SETTINGS['wp-users-system']=='wp'){return[[SB_WP_ACTIVE_USER,typeof SB_WP_AVATAR!=ND?SB_WP_AVATAR:''],'wp']} 345if(typeof SB_PERFEX_ACTIVE_USER!=ND){return[[SB_PERFEX_ACTIVE_USER,SB_PERFEX_CONTACT_ID],'perfex']} 346if(typeof SB_WHMCS_ACTIVE_USER!=ND){return[SB_WHMCS_ACTIVE_USER,'whmcs']} 347if(typeof SB_AECOMMERCE_ACTIVE_USER!=ND){return[SB_AECOMMERCE_ACTIVE_USER,'aecommerce']} 348if(typeof SB_DEFAULT_USER!=ND&&SB_DEFAULT_USER){return[SB_DEFAULT_USER,'default']} 349return!1},is:function(name){if(admin)return SBAdmin.apps.is(name);if(name=='wordpress'||name=='wp')return CHAT_SETTINGS.wp;return name in CHAT_SETTINGS?CHAT_SETTINGS[name]:!1},wordpress:{ajax:function(action,data,onSuccess=!1){if(typeof SB_WP_AJAX_URL==ND)return;$.ajax({method:'POST',url:SB_WP_AJAX_URL,data:$.extend({action:'sb_wp_ajax',type:action},data)}).done((response)=>{if(onSuccess){onSuccess(response)}})}},woocommerce:{updateCart:function(action,product_id,onSuccess=!1){SBApps.wordpress.ajax(action,{product_id:product_id},onSuccess)},waitingList:function(action='request',product_id=!1){if(typeof SB_WP_WAITING_LIST!==ND&&(action!='request'||SB_WP_WAITING_LIST&&SBF.storageTime('waiting-list-'+SB_WP_PAGE_ID,24))&&activeUser()){SBF.ajax({function:'woocommerce-waiting-list',product_id:product_id===!1?SB_WP_PAGE_ID:product_id,conversation_id:SBChat.conversation.id,action:action,token:this.token},(response)=>{if(response){SBF.storageTime('waiting-list-'+SB_WP_PAGE_ID);if(action=='request'&&(!SBChat.chat_open||SBChat.dashboard)){SBChat.updateConversations()}}})}}},dialogflow:{token:storage('dialogflow-token'),typing_enabled:!1,project_id:!1,message:function(message='',attachments=[],delay=!1,parameters=!1){if(this.active()){let human_takeover_active=SBApps.dialogflow.humanTakeoverActive();if(!human_takeover_active||this.typing_enabled){timeout=setTimeout(()=>{SBChat.typing(-1,'start');setTimeout(()=>{SBChat.typing(-1,'stop')},10000)},1000)} 350setTimeout(()=>{SBF.ajax({function:'dialogflow-message',conversation_id:SBChat.conversation?SBChat.conversation.id:!1,message:message,attachments:attachments,parameters:parameters,token:this.token,dialogflow_language:storage('dialogflow-language')?storage('dialogflow-language'):SB_LANG,project_id:this.project_id,session_id:activeUser().id+'-'+SBChat.conversation.id},(response)=>{if(response===!1)return;if(response.response&&response.response.error){return console.error(response.response)} 351if('human_takeover' in response){SBChat.offlineMessage();SBChat.followUp();return this.active(!1)} 352if('language_detection' in response&&!storage('dialogflow-language')){storage('dialogflow-language',[response.language_detection])} 353if(!SBF.errorValidation(response)){let query_result='queryResult' in response.response?response.response.queryResult:!1;let is_unknow=query_result&&(query_result.action=='input.unknown'||('match' in query_result&&query_result.match.matchType=='NO_MATCH'));let messages='messages' in response&&Array.isArray(response.messages)?response.messages:[];SBChat.typing(-1,'stop');clearTimeout(timeout);if(this.token!=response.token){this.token=response.token;storage('dialogflow-token',response.token)} 354if(is_unknow){if(human_takeover_active)this.typing_enabled=!1}else this.typing_enabled=!0;if(query_result){if('action' in query_result){let action=query_result.action;if(action=='end'){this.active(!1)} 355SBF.event('SBBotAction',action)} 356for(var i=0;i<messages.length;i++){if('payload' in messages[i]){let payloads=['human-takeover','redirect','woocommerce-update-cart','woocommerce-checkout','open-article','transcript','department','agent','send-email','disable-bot','rich-message'];let payload=messages[i].payload;if(SBF.null(payload))payload=[];if(payloads[0]in payload&&payload[payloads[0]]===!0){this.humanTakeover()} 357if(payloads[1]in payload){setTimeout(function(){'new-window' in payload&&payload['new-window']?window.open(payload[payloads[1]]):document.location=payload[payloads[1]]},500)} 358if(payloads[2]in payload){let payload_value=payload[payloads[2]];
358SBApps.woocommerce.updateCart(payload_value[0],payload_value[1],(response)=>{if(response){SBF.event('SBWoocommerceCartUpdated',{'action':payload_value[0],'product':payload_value[1]})}})} 359if(payloads[3]in payload&&payload[payloads[3]]===!0){SBApps.wordpress.ajax('url',{url_name:'checkout'},(response)=>{setTimeout(()=>document.location=response,500)})} 360if(payloads[4]in payload){SBChat.showArticles(payload[payloads[4]])} 361if(payloads[5]in payload&&payload[payloads[5]]){SBF.ajax({function:'transcript',conversation_id:SBChat.conversation.id,type:'txt'},(response)=>{if(payload[payloads[5]]=='email'&&activeUser().get('email')){SBChat.sendEmail('message' in payload?payload.message:'',[[response,response]],!0)}else window.open(response)})} 362if(payloads[6]in payload){SBF.ajax({function:'update-conversation-department',conversation_id:SBChat.conversation.id,department:payload[payloads[6]],message:SBChat.conversation.getLastUserMessage().message})} 363if(payloads[7]in payload){SBF.ajax({function:'update-conversation-agent',conversation_id:SBChat.conversation.id,agent_id:payload[payloads[7]],message:SBChat.conversation.getLastUserMessage().message})} 364if(payloads[8]in payload){let email=payload[payloads[8]];SBChat.sendEmail(email.message,email.attachments,email.recipient=='active_user')} 365if(payloads[9]in payload){this.active(!1);SBF.cookie('sb-dialogflow-disabled',!0,300,'set',!0)} 366if(payloads[10]in payload){SBChat.sendMessage(bot_id,payload[payloads[10]])} 367SBF.event('SBBotPayload',payload)} 368if(!storage('dialogflow-language')&&'languageCode' in query_result&&(!SB_LANG||query_result.languageCode!=SB_LANG[0])){storage('dialogflow-language',[query_result.languageCode])}} 369if('diagnosticInfo' in query_result){let info=query_result.diagnosticInfo;if('end_conversation' in info&&info.end_conversation){this.active(!1)}}} 370if(CHAT_SETTINGS['slack-active']&&messages&&(!dialogflow_human_takeover||human_takeover_active)){for(var i=0;i<messages.length;i++){SBChat.slackMessage(activeUser().id,CHAT_SETTINGS['bot-name'],CHAT_SETTINGS['bot-image'],messages[i].message,messages[i].attachments)}} 371SBF.event('SBBotMessage',{response:response,message:message})}})},delay!==!1?delay:(CHAT_SETTINGS['bot-delay']==0?2000:parseInt(CHAT_SETTINGS['bot-delay'])))}},active:function(active=!0){let name='human-takeover-'+SBChat.conversation.id;if(active===!1){SBF.storageTime(name);return!1} 372if(active=='activate'){SBF.cookie('sb-dialogflow-disabled',0,0,'delete');SBF.storage(name,'')} 373return CHAT_SETTINGS['dialogflow-active']&&!admin&&!SBF.cookie('sb-dialogflow-disabled')&&(SBF.storageTime(name,240)||!SBChat.agent_online)&&(!CHAT_SETTINGS['bot-office-hours']||!CHAT_SETTINGS['office-hours'])},welcome:function(open=!1,sound=!1){SBF.ajax({function:'dialogflow-message',message:'',conversation_id:SBChat.conversation.id,token:this.token,event:'Welcome',dialogflow_language:storage('dialogflow-language')?storage('dialogflow-language'):SB_LANG},()=>{if(open)SBChat.start();if(sound)SBChat.audio.play();})},humanTakeover:function(){SBF.ajax({function:'dialogflow-human-takeover',conversation_id:SBChat.conversation.id},()=>{SBChat.offlineMessage();SBChat.followUp();this.active(!1);if(CHAT_SETTINGS['queue-human-takeover']){CHAT_SETTINGS.queue=!0;SBChat.queue(SBChat.conversation.id)}})},humanTakeoverActive:function(){return!SBF.storageTime('human-takeover-'+(SBChat.conversation?SBChat.conversation.id:storage('open-conversation')),240)},translate:function(strings,language_code,onSuccess){SBF.ajax({function:'google-translate',strings:strings,language_code:language_code,token:this.token},(response)=>{this.token=response[1] 374onSuccess(response[0])})}},aecommerce:{cart:function(){if(SBApps.is('aecommerce')&&typeof SB_AECOMMERCE_CART!=ND&&typeof SB_AECOMMERCE_ACTIVE_USER!=ND&&storage('aecommerce')!=JSON.stringify(SB_AECOMMERCE_CART)){SBF.ajax({function:'aecommerce-cart',cart:SB_AECOMMERCE_CART},()=>{storage('aecommerce',JSON.stringify(SB_AECOMMERCE_CART))})}}},martfury:{privateChat:function(){let store=$('#tab-vendor > h4,.ps-product__vendor > a');if(store.length){store=store.html().toLowerCase();for(var i=0;i<CHAT_SETTINGS.martfury.length;i++){if(store==CHAT_SETTINGS.martfury[i]['martfury-linking-store'].toLowerCase()){let agent_id=CHAT_SETTINGS.martfury[i]['martfury-linking-agent'];let conversations=SBF.activeUser()?SBF.activeUser().conversations:[];SBChat.default_agent=agent_id;for(var j=0;j<conversations.length;j++){if(conversations[j].get('agent_id')==agent_id){SBChat.openConversation(conversations[j].id);return}} 375SBChat.clear();SBChat.hideDashboard()}}}}}} 376window.SBApps=SBApps;$(document).ready(function(){main=$('.sb-admin, .sb-admin-start');if(main.length){admin=!0;initialize();return} 377let url_full;let url;let init=!1;if(typeof SB_INIT_URL!=ND){if(SB_INIT_URL.indexOf('.js')<0){SB_INIT_URL+='/js/main.js?v='+version} 378url_full=SB_INIT_URL}else{let scripts=document.getElementsByTagName('script');let checks=['init.js','main.js','min/init.min.js','min/main.min.js'];for(var i=0;i<scripts.length;i++){let source=scripts[i].src;if(scripts[i].id=='sbinit'){url_full=source;init=init?init:url_full.includes('init.');break}else{for(var j=0;j<checks.length;j++){if(source&&source.includes('/supportboard/js/'+checks[j])){url_full=source;init=init?init:url_full.includes('init.');break}}}}} 379let parameters=SBF.getURL(!1,url_full);if('url' in parameters){url_full=parameters.url} 380if(typeof SB_DISABLED!=ND&&SB_DISABLED){return} 381if(init){initialize();return} 382if(typeof SB_TICKETS!=ND||('mode' in parameters&¶meters.mode=='tickets')){tickets=!0;parameters.mode='tickets'} 383if('cloud' in parameters){cloud_data=parameters.cloud} 384let min=url_full.lastIndexOf('main.min.js');url=url_full.substr(0,url_full.lastIndexOf('main.js')>0?(url_full.lastIndexOf('main.js')-4):(min-8));let url_chat=url+'/include/init.php'+('lang' in parameters?'?lang='+parameters.lang:'')+('mode' in parameters?'&mode='+parameters.mode:'')+(cloud_data?'&cloud='+cloud_data:'');SBF.cors('GET',url_chat.replace('.php&','.php?'),(response)=>{let target='body';if(tickets&&$('#sb-tickets').length){target='#sb-tickets'} 385$(target).append(response);SBF.loadResource(url+'/css/'+(tickets?'tickets':'main')+'.css');if(tickets){$.getScript(url+'/apps/tickets/tickets'+(min?'.min':'')+'.js?v='+version,()=>{initialize()})}else initialize()})});function initialize(){main=$('.sb-admin, .sb-chat, .sb-tickets');if(main.length&&typeof SB_AJAX_URL!=ND){chat=main.find('.sb-list');chat_editor=main.find('.sb-editor');chat_textarea=chat_editor.find('textarea');chat_scroll_area=main.find(admin||tickets?'.sb-list':'> div > .sb-scroll-area');label_date=main.find('.sb-label-date-top');chat_header=chat_scroll_area.find('.sb-header');chat_emoji=chat_editor.find('.sb-emoji');chat_status=tickets?main.find('.sb-profile-agent .sb-status'):null;SBChat.enabledAutoExpand();SBChat.audio=main.find('#sb-audio').get(0);SBChat.audio_out=main.find('#sb-audio-out').get(0);SBF.cookie('sb-check','ok',1,'set');if(SBF.cookie('sb-check')!='ok'){cookies_supported=!1;console.warn('Support Board: cookies not available.')}else{SBF.cookie('sb-check',!1,!1,!1)} 386if(!admin){SBF.ajax({function:'get-front-settings',current_url:window.location.href},(response)=>{CHAT_SETTINGS=response;if(typeof SB_LOCAL_SETTINGS!=ND){$.extend(CHAT_SETTINGS,SB_LOCAL_SETTINGS)} 387bot_id=CHAT_SETTINGS['bot-id'];dialogflow_human_takeover=CHAT_SETTINGS['dialogflow-human-takeover'];agents_online=CHAT_SETTINGS['agents-online'];SBPusher.active=CHAT_SETTINGS.pusher;if(typeof SB_REGISTRATION_REQUIRED!=ND){CHAT_SETTINGS['registration-required']=SB_REGISTRATION_REQUIRED;CHAT_SETTINGS['tickets-registration-required']=SB_REGISTRATION_REQUIRED} 388if(typeof SB_ARTICLES_PAGE!=ND&&SB_ARTICLES_PAGE){SBChat.initArticlesPage()} 389if((!tickets||!CHAT_SETTINGS['tickets-manual-init'])&&((tickets&&!CHAT_SETTINGS['tickets-manual-init'])||(!CHAT_SETTINGS['chat-manual-init']&&(!CHAT_SETTINGS['disable-offline']||agents_online)&&(!CHAT_SETTINGS['disable-office-hours']||CHAT_SETTINGS['office-hours'])&&(!CHAT_SETTINGS['chat-login-init']||SBApps.login())))){SBChat.initChat()} 390if(CHAT_SETTINGS.cron){setTimeout(function(){SBF.ajax({function:'cron-jobs'})},10000)} 391if(CHAT_SETTINGS['cron-email-piping']){setTimeout(function(){SBF.ajax({function:'email-piping'})},8000)} 392if(CHAT_SETTINGS['push-notifications-users']){SBPusher.initServiceWorker()} 393if(tickets){if(CHAT_SETTINGS['tickets-default-department'])SBChat.default_department=CHAT_SETTINGS['tickets-default-department'];
393if(CHAT_SETTINGS['dialogflow-disable-tickets'])CHAT_SETTINGS['dialogflow-active']=!1} 394if(SBApps.is('martfury')){let session=!1;setInterval(function(){if(activeUser()){let current=SBF.cookie('XSRF-TOKEN');if(current&¤t!=session){SBF.ajax({function:'martfury-session'});session=current}}},3000)} 395setAudio();SBApps.aecommerce.cart();SBF.event('SBReady')})}else{setAudio();SBF.event('SBReady')} 396$(chat_editor).on('keydown','textarea',function(e){if(e.which==13&&(!tickets||CHAT_SETTINGS['tickets-enter-button'])&&(!admin||(!e.ctrlKey&&!e.shiftKey))){SBChat.submit();e.preventDefault;return!1} 397if(admin&&e.which==13&&e.ctrlKey){SBChat.insertText('\n')}});$(main).on('keydown','.sb-dashboard-articles input',function(e){if(e.which==13)$(this).next().click();});if(typeof SB_DEFAULT_DEPARTMENT!==ND){SBChat.default_department=SB_DEFAULT_DEPARTMENT} 398if(typeof SB_DEFAULT_AGENT!==ND){SBChat.default_agent=SB_DEFAULT_AGENT} 399if(typeof SB_DIALOGFLOW_AGENT!==ND){SBApps.dialogflow.project_id=SB_DIALOGFLOW_AGENT}}else{SBF.event('SBReady')} 400document.addEventListener('visibilitychange',function(){SBF.visibilityChange(document.visibilityState)},!1);$(main).on('click',function(){if(!SBChat.tab_active){SBF.visibilityChange()}});global=main;if(admin){main=main.find('.sb-conversation')} 401$(chat_scroll_area).on('scroll',function(){let scroll=chat_scroll_area.scrollTop();let count=label_date_items.length;SBChat.scrollHeader();if(label_date_show){label_date.sbActive(!0);clearTimeout(timeout_label_date[0]);timeout_label_date[0]=setTimeout(()=>{label_date.sbActive(!1)},1500)} 402if(count){if(SBChat.isBottom()){label_date.html($(label_date_items[count-1]).html())}else{for(var i=0;i<count;i++){let top=label_date_items[i].getBoundingClientRect().top;if(top>100&&top<150){let label=$(label_date_items[label_date_history[0]>scroll&&i>0?i-1:i]).html();if(label!=label_date_history[1]){label_date.html(label);label_date_history[1]=label} 403break}}}} 404label_date_history[0]=scroll});$(chat).on('click','.sb-menu-btn',function(){let menu=$(this).parent().find('.sb-menu');let active=$(menu).sbActive();SBF.deactivateAll();if(!active){$(menu).sbActive(!0);SBF.deselectAll();if(admin)SBAdmin.open_popup=menu}});if(mobile){$(chat_editor).on('click','.sb-textarea',function(){main.addClass('sb-header-hidden');$(this).find('textarea').focus();if(SBChat.isBottom()){SBChat.scrollBottom();setTimeout(()=>{SBChat.scrollBottom()},200)}});$(chat_editor).on('focusout','.sb-textarea',function(){setTimeout(()=>{main.removeClass('sb-header-hidden')},300)});$(chat_editor).on('click','.sb-submit',function(){chat_textarea.blur()});window.addEventListener('popstate',function(){if(SBChat.chat_open)SBChat.open(!1);})} 405$(chat).on('click','.sb-menu li',function(){$(this).parent().sbActive(!1)});$(chat_editor).on('click','.sb-submit',function(){SBChat.submit()});$('body').on('click','.sb-chat-btn,.sb-responsive-close-btn,#sb-open-chat,.sb-open-chat',function(){SBChat.open(!SBChat.chat_open)});$(main).on('click','.sb-dashboard-btn',function(){SBChat.showDashboard();if(chat_scroll_area.find(' > .sb-panel-articles > .sb-article').length)SBChat.showArticles();storage('open-conversation',0);force_action=!1});$(main).on('click','.sb-user-conversations li',function(){SBChat.openConversation($(this).attr('data-conversation-id'))});$(main).on('click','.sb-btn-new-conversation,.sb-departments-list > div,.sb-agents-list > div',function(){let id=$(this).data('id');if(!SBF.null(id)){if($(this).parent().hasClass('sb-departments-list')){SBChat.default_department=parseInt(id)}else{SBChat.default_agent=parseInt(id)}} 406force_action='new-conversation';SBChat.clear();SBChat.hideDashboard()});$(main).on('click','.sb-btn-all-conversations',function(){main.find('.sb-dashboard-conversations').removeClass('sb-conversations-hidden')});$(chat_editor).on('click','.sb-btn-attachment',function(){if(!SBChat.is_busy){chat_editor.find('.sb-upload-files').val('').click()}});$(chat_editor).on('click','.sb-attachments > div > i',function(e){$(this).parent().remove();if(chat_textarea.val()==''&&chat_editor.find('.sb-attachments > div').length==0){SBChat.activateBar(!1)} 407e.preventDefault();return!1});$(chat_editor).on('change','.sb-upload-files',function(data){SBChat.busy(!0);$(this).sbUploadFiles(function(response){SBChat.uploadResponse(response)});SBF.event('SBAttachments')});$(chat_editor).on('dragover',function(e){$(this).addClass('sb-drag');clearTimeout(timeout);e.preventDefault();e.stopPropagation()});$(chat_editor).on('dragleave',function(e){timeout=setTimeout(()=>{$(this).removeClass('sb-drag')},200);e.preventDefault();e.stopPropagation()});$(chat_editor).on('drop',function(e){let files=e.originalEvent.dataTransfer.files;e.preventDefault();e.stopPropagation();if(files.length>0){for(var i=0;i<files.length;++i){let form=new FormData();form.append('file',files[i]);SBF.upload(form,function(response){SBChat.uploadResponse(response)})}} 408$(this).removeClass('sb-drag');return!1});$(main).on('click','.sb-btn-all-articles:not([onclick])',function(){SBChat.showArticles()});$(main).on('click','.sb-articles > div:not(.sb-title)',function(){SBChat.showArticles($(this).attr('data-id'))});$(main).on('click','.sb-dashboard-articles .sb-input-btn .sb-submit-articles',function(){SBChat.searchArticles($(this).parent().find('input').val(),this,$(this).parent().next())});$(global).on('click','.sb-article [data-rating]',function(){SBChat.articleRatingOnClick(this)});$(chat).on('click','.sb-rich-button a',function(e){let link=$(this).attr('href');if(link.indexOf('#')===0){if(link.indexOf('#article-')===0){SBChat.showArticles(link.replace('#article-',''));e.preventDefault();return!1}}});$(global).on('click','.sb-lightbox-media > i',function(){global.find('.sb-lightbox-media').sbActive(!1);if(admin)SBAdmin.open_popup=!1;return!1});$(main).on('click','.sb-image',function(){SBF.lightbox($(this).html())});$(main).on('click','.sb-slider-images .sb-card-img',function(){SBF.lightbox(`<img loading="lazy" src="${$(this).attr('data-value')}" />`)});$(document).on('SBConversationLoaded',function(){if(storage('queue')){SBChat.queue(storage('queue'))}});$(chat_editor).on('click','.sb-btn-emoji',function(){SBChat.showEmoji(this)});
408$(chat_emoji).on('click','.sb-emoji-list li',function(e){SBChat.insertEmoji($(this).html());if(mobile)clearTimeout(timeout);});$(chat_emoji).find('.sb-emoji-list').on('touchend',function(e){timeout=setTimeout(()=>{SBChat.mouseWheelEmoji(e)},50)});$(chat_emoji).find('.sb-emoji-list').on('mousewheel DOMMouseScroll',function(e){SBChat.mouseWheelEmoji(e)});$(chat_emoji).find('.sb-emoji-list').on('touchstart',function(e){SBChat.emoji_options.touch=e.originalEvent.touches[0].clientY});$(chat_emoji).on('click','.sb-emoji-bar > div',function(){SBChat.clickEmojiBar(this)});$(chat_emoji).on('click','.sb-select li',function(){SBChat.categoryEmoji($(this).data('value'))});$(chat_emoji).find('.sb-search-btn input').on('change keyup paste',function(){SBChat.searchEmoji($(this).val())});$(chat_textarea).on('keyup',function(){SBChat.textareaChange(this)});$(main).on('click','.sb-privacy .sb-approve',function(){storage('privacy-approved',!0);$(this).closest('.sb-privacy').remove();main.removeClass('sb-init-form-active');chat_header.find(' > div').css({'opacity':1,'top':0});SBChat.initChat();if(tickets){SBTickets.showPanel('new-ticket')}else if(!SBChat.isInitDashboard()){SBChat.hideDashboard()}});$(main).on('click','.sb-privacy .sb-decline',function(){let privacy=$(this).closest('.sb-privacy');$(privacy).find('.sb-text').html($(privacy).attr('data-decline'));$(privacy).find('.sb-decline').remove();SBChat.scrollBottom(!0)});$(main).on('click','.sb-popup-message .sb-icon-close',function(){SBChat.popup(!0)});$(main).on('click','.sb-rich-message .sb-submit,.sb-rich-message .sb-select ul li',function(){let message=$(this).closest('.sb-rich-message');if(!message[0].hasAttribute('disabled')){SBRichMessages.submit(message,message.attr('data-type'),this)}});$(main).on('click','.sb-rich-message .sb-input > span',function(){$(this).sbActive(!0);$(this).siblings().focus()});$(main).on('focus focusout click','.sb-rich-message .sb-input input,.sb-rich-message .sb-input select',function(e){switch(e.type){case 'focusin':case 'focus':$(this).siblings().sbActive(!0);break;case 'focusout':if($(this).val()==''){$(this).siblings().sbActive(!1)}else{$(this).siblings().addClass('sb-filled sb-active')} 409break;case 'click':$(this).siblings().removeClass('sb-filled');break}});$(main).on('click','.sb-slider-arrow',function(){SBRichMessages.sliderChange($(this).closest('[id]').attr('id'),$(this).hasClass('sb-icon-arrow-right')?'right':'left')});$(main).on('change','.sb-rich-message [data-type="select"] select',function(){$(this).siblings().sbActive(!0)});$(main).on('click','[data-type="select-input"] > div',function(){$(this).prev().sbActive(!0);$(this).next().addClass('sb-focus')});$(main).on('focusout','[data-type="select-input"] input,[data-type="select-input"] select',function(){let cnt=$(this).closest('.sb-input');if(cnt.find('input[type="tel"]').val()+cnt.find('select').val()==''){cnt.find('span').sbActive(!1)} 410cnt.find('.sb-focus').removeClass('sb-focus')});$(main).on('click','.sb-rich-registration .sb-login-area',function(){let init=main.hasClass('sb-init-form-active');$(this).closest('.sb-rich-registration').replaceWith(SBRichMessages.generate({},'login',init?'sb-init-form':''));SBChat.scrollBottom(init)});$(main).on('click','.sb-rich-login .sb-registration-area',function(){if(CHAT_SETTINGS['registration-link']){document.location=CHAT_SETTINGS['registration-link']}else{let init=main.hasClass('sb-init-form-active');$(this).closest('.sb-rich-login').replaceWith(SBRichMessages.generate({},'registration',init?'sb-init-form':''));SBChat.scrollBottom(init)}});$(main).on('click','.sb-rich-login .sb-submit-login',function(){SBF.loginForm(this,!1,(response)=>{let area=$(this).closest('.sb-rich-login');activeUser(new SBUser(response[0]));if(area.hasClass('sb-init-form')){main.removeClass('sb-init-form-active');area.remove();force_action='open-conversation';SBChat.initChat();SBPusher.start();if(!SBChat.isInitDashboard()){SBChat.hideDashboard()}}else{area=area.closest('[data-id]');let message=SBChat.conversation.getMessage(area.attr('data-id'));let text=`${sb_('Logged in as')} *${activeUser().name}*`;message.set('message',text);SBChat.updateMessage(message.id,text);area.replaceWith(message.getCode());SBPusher.started=!1;SBPusher.start()}})});$(chat).on('click','.sb-social-buttons div',function(){SBF.openWindow($(this).attr('data-link'))});$(main).on('click','.sb-close-chat',function(){SBChat.closeChat()});$(chat).on('click','.sb-rich-woocommerce-button a, [href="#"].sb-card-btn',function(e){let settings=SBF.settingsStringToArray($(this).closest('.sb-rich-message').attr('data-settings'));let checkout=settings['link-type']=='checkout'||settings.checkout;let product_ids=$(this)[0].hasAttribute('data-ids')?$(this).attr('data-ids').split(','):[settings.id.split('|')[$(this).parent().index()]];if(product_ids.length){if(loading(this))return;SBApps.wordpress.ajax('button-purchase',{product_ids:product_ids,checkout:checkout,coupon:settings.coupon},(response)=>{if(checkout){document.location=response}else{$(this).addClass('sb-icon-check').sbLoading(!1)}})} 411e.preventDefault();return!1});$(chat).on('click','#sb-waiting-list .sb-submit',function(){if($(this).index()==0){setTimeout(()=>
411{SBApps.woocommerce.waitingList('submit')},1000)}});$(document).on('SBNewEmailAddress',function(e,response){if(response.id=='sb-waiting-list-email'){SBApps.woocommerce.waitingList('submit')}});$(global).on('click','.sb-search-btn > i',function(){let parent=$(this).parent();let active=$(parent).sbActive();if(active){setTimeout(()=>{$(parent).find('input').val('')},50);setTimeout(()=>{$(parent).find('input').trigger('change')},550)};$(parent).sbActive(!active);$(parent).find('input').focus();global.find('.sb-select ul').sbActive(!1)});$(global).on('click','.sb-select',function(){let ul=$(this).find('ul');let active=ul.hasClass('sb-active');$(global).find('.sb-select ul').sbActive(!1);ul.setClass('sb-active',!active);if(admin)SBAdmin.open_popup=active?!1:this});$(global).on('click','.sb-select li',function(){let select=$(this).closest('.sb-select');let value=$(this).data('value');var item=$(select).find(`[data-value="${value}"]`);$(select).find('li').sbActive(!1);$(select).find('p').attr('data-value',value).html($(item).html());$(item).sbActive(!0)});$(global).on('click','.sb-input-image .image',function(){upload_target=$(this).parent();chat_editor.find('.sb-upload-files').click()});$(global).on('click','.sb-input-image .image > .sb-icon-close',function(e){$(this).parent().removeAttr('data-value').css('background-image','');e.preventDefault();return!1})}}(jQuery)); 412 413 414var SB_INIT_URL = "https://worldlanguagestranslation.com/wp-content/plugins/supportboard/supportboard/js/main.js?lang=fa"; var SB_WP_PAGE_ID = 906; var SB_WP_AJAX_URL = "https://worldlanguagestranslation.com/wp-admin/admin-ajax.php";
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.