1var wwsLoader = '<div class="wws-spinner">'; 2 wwsLoader += '<div class="wws-bounce1 wws--bg-color"></div>'; 3 wwsLoader += '<div class="wws-bounce2 wws--bg-color"></div>'; 4 wwsLoader += '<div class="wws-bounce3 wws--bg-color"></div>'; 5 wwsLoader += '</div>'; 6 7const wwsWidget = { 8 9 /* 10 * Popup show and hide 11 */ 12 trigger: function( status = '' ) { 13 if ( 'open' === status ) { 14 this.open(); 15 16 /** 17 * Trigger when widget open. 18 */ 19 jQuery( document.body ).trigger( 'wws_widget_open' ); 20 } else if ( 'close' === status ) { 21 this.close(); 22 23 /** 24 * Trigger when widget close. 25 */ 26 jQuery( document.body ).trigger( 'wws_widget_close' ); 27 } else { 28 // Popup not open 29 if ( jQuery( '.wws-popup' ).attr( 'data-wws-popup-status' ) == '0' ) { 30 this.open(); 31 32 jQuery( document.body ).trigger( 'wws_widget_open' ); 33 } else { // Popup open 34 this.close(); 35 36 jQuery( document.body ).trigger( 'wws_widget_close' ); 37 } 38 } 39 }, 40 41 open: function() { 42 jQuery( '.wws-popup' ).slideDown(); 43 jQuery( '.wws-popup' ).attr( 'data-wws-popup-status', '1' ); 44 jQuery( '.wws-gradient' ).show(); 45 }, 46 47 close: function() {
48 jQuery( '.wws-popup' ).slideUp(); 49 jQuery( '.wws-popup' ).attr( 'data-wws-popup-status', '0' ); 50 jQuery( '.wws-gradient' ).hide(); 51 }, 52 53 /* 54 * Auto popup 55 */ 56 autoPopup: function( delayInSeconds ) { 57 if ( 'yes' !== sessionStorage.wwsAutoPopup ) { 58 setTimeout( function() { 59 if ( '0' == jQuery( '.wws-popup' ).data( 'wws-popup-status' ) ) { 60 wwsWidget.trigger(); 61 } 62 sessionStorage.wwsAutoPopup = 'yes'; 63 }, Number( delayInSeconds * 1000 ) ); 64 } 65 }, 66 67 /* 68 * Send message 69 */ 70 sendMessage: function( message = '', whatsappNumber = '' ) { 71 if ( '' === message || '' === whatsappNumber) { 72 return false; 73 } 74 75 if ( wwsObj.whatsapp_web_api ) { 76 window.open( wwsObj.whatsapp_web_api + '/' + whatsappNumber + '?text=' + message + '' ); 77 } else if ( this.is_mobile.any() ) { 78 window.open( wwsObj.whatsapp_mobile_api + '/send?phone=' + whatsappNumber + '&text=' + message + ''); 79 } else { 80 window.open( wwsObj.whatsapp_desktop_api + '/send?phone=' + whatsappNumber + '&text=' + message + ''); 81 } 82 83 jQuery( document.body ).trigger( 'wws_message_sent' ); 84 85 return true; 86 }, 87 88 /* 89 * Send group invitation 90 */ 91 sendGroupInvitation: function( groupID ) { 92 window.open('https://chat.whatsapp.com/' + groupID ); 93 }, 94 95 /* 96 * Mobile detection 97 */ 98 is_mobile: { 99 Android: function() { 100 return navigator.userAgent.match(/Android/i); 101 }, 102 BlackBerry: function() { 103 return navigator.userAgent.match(/BlackBerry/i); 104 }, 105 iOS: function() { 106 return navigator.userAgent.match(/iPhone|iPad|iPod/i); 107 }, 108 Opera: function() { 109 return navigator.userAgent.match(/Opera Mini/i); 110 }, 111 Windows: function() { 112 return navigator.userAgent.match(/IEMobile/i); 113 }, 114 any: function() { 115 return ( wwsWidget.is_mobile.Android() || wwsWidget.is_mobile.BlackBerry() || wwsWidget.is_mobile.iOS() || wwsWidget.is_mobile.Opera() || wwsWidget.is_mobile.Windows()); 116 }, 117 }, 118 119 logAnalytics: function( message = 'N/A', number = 'N/A', through = '', args = {} ) { 120 jQuery.ajax({ 121 url: wwsObj.admin_url, 122 type: 'post', 123 data: { 124 'action': 'wws_click_analytics', 125 'message': message, 126 'number': number, 127 'through': through, 128 'support_person_id': args.supportPersonId || '-1', 129 'security': wwsObj.security_token, 130 } 131 }); 132 }, 133} 134 135;(function( $ ) { 136 "use strict"; 137 138 jQuery( document ).ready(function() { 139 140 // Google and Facebook Pixel Analytics 141 function wws_ga_and_fb_click_analytics() { 142 143 var fbGaAnalytics = jQuery.parseJSON( wwsObj.fb_ga_click_tracking ); 144 145 if ( 'yes' == fbGaAnalytics.ga_click_tracking_status ) { 146 147 try { 148 gtag( 149 'event', 150 fbGaAnalytics.ga_click_tracking_event_name, { 151 'event_category': fbGaAnalytics.ga_click_tracking_event_category, 152 'event_label': fbGaAnalytics.ga_click_tracking_event_label, 153 } 154 ); 155 } catch ( error ) { 156 if ( 'yes' === wwsObj.is_debug ) { 157 window.console && console.log( 'WordPress WhatsApp Support Google or Facebook analytics error message: ' + error.message ); 158 } 159 } 160 161 try { 162 ga( 163 'send', 164 'event', 165 fbGaAnalytics.ga_click_tracking_event_category, 166 fbGaAnalytics.ga_click_tracking_event_name, 167 fbGaAnalytics.ga_click_tracking_event_label 168 ); 169 } catch ( error ) { 170 if ( 'yes' === wwsObj.is_debug ) { 171 window.console && console.log( 'WordPress WhatsApp Support Google or Facebook analytics error message: ' + error.message ); 172 } 173 } 174 175 try { 176 _gaq.push([ 177 '_trackEvent', 178 fbGaAnalytics.ga_click_tracking_event_category, 179 fbGaAnalytics.ga_click_tracking_event_name, 180 fbGaAnalytics.ga_click_tracking_event_label 181 ]); 182 } 183 catch ( error ) { 184 if ( 'yes' === wwsObj.is_debug ) { 185 window.console && console.log( 'WordPress WhatsApp Support Google or Facebook analytics error message: ' + error.message ); 186 } 187 } 188 189 try { 190 window.dataLayer.push( { 191 'event': fbGaAnalytics.ga_click_tracking_event_name, 192 'eventCategory': fbGaAnalytics.ga_click_tracking_event_category, 193 'eventLabel': fbGaAnalytics.ga_click_tracking_event_label, 194 'current_url': window.location.href 195 } ); 196 } 197 catch ( error ) { 198 if ( 'yes' === wwsObj.is_debug ) { 199 window.console && console.log( 'WordPress WhatsApp Support Google or Facebook analytics error message: ' + error.message ); 200 } 201 } 202 } 203 204 if ( 'yes' == fbGaAnalytics.fb_click_tracking_status ) { 205 var FBpixeled = false;
206 try { 207 if ( ! FBpixeled ) { 208 fbq( 'trackCustom', 'WordPressWhatsAppSupport', { 209 event: fbGaAnalytics.fb_click_tracking_event_name, 210 account: fbGaAnalytics.fb_click_tracking_event_label 211 }); 212 FBpixeled = true; 213 } 214 } 215 catch ( error ) { 216 if ( 'yes' === wwsObj.is_debug ) { 217 window.console && console.log( 'WordPress WhatsApp Support Google or Facebook analytics error message: ' + error.message ); 218 } 219 } 220 } 221 } 222 223 function isGDPRChecked() { 224 if ( 'yes' !== wwsObj.is_gdpr ) { 225 return; 226 } 227 228 if ( jQuery('.wws-gdpr input').is(':checked') == false ) { 229 jQuery( '.wws-gdpr > div' ).addClass('wws-shake-animation'); 230 setTimeout( function() { 231 jQuery( '.wws-gdpr > div' ).removeClass('wws-shake-animation'); 232 }, 300 ); 233 return false; 234 } else { 235 return true; 236 } 237 } 238 239 // Open and close the wws popup 240 jQuery( '.wws-popup__open-btn, .wws-popup__close-btn' ).on('click', function(event) { 241 event.preventDefault(); 242 wwsWidget.trigger(); 243 }); 244 245 246 // send message 247 jQuery( document ).on('click', '.wws-popup__send-btn', function(event) { 248 event.preventDefault(); 249 250 // If popup template is 8th 251 if ( wwsObj.popup_layout == 8 ) { 252 var preMessage = jQuery( this ).attr( 'data-wws-pre-msg' ); 253 var whatsappNumber = jQuery( this ).attr( 'data-wws-number' ); 254 255 if ( isGDPRChecked() == false ) return; 256 257 if ( '' === preMessage ) { 258 preMessage = '%20'; 259 } 260 261 if( wwsWidget.sendMessage( preMessage, whatsappNumber ) == true ) { 262 wwsWidget.logAnalytics( preMessage, 'N/A', 'Layout 8' ); 263 wws_ga_and_fb_click_analytics(); 264 } 265 } 266 267 // If popup template is 7th 268 if ( wwsObj.popup_layout == 7 ) { 269 270 var message = jQuery( '.wws-popup__input' ).val(); 271 var number = jQuery( '.wws-popup__fields-number' ).val(); 272 var whatsappNumber = wwsObj.support_number; 273 274 if ( isGDPRChecked() == false ) return; 275 276 setTimeout( function() { 277 jQuery( '.wws-popup__fields-textarea-wrapper, .wws-popup__fields-number' ).removeClass( 'wws-shake-animation' ); 278 }, 300 ); 279 280 if ( number == '' ) { 281 jQuery( '.wws-popup__fields-number' ).addClass( 'wws-shake-animation' ); 282 return; 283 } 284 if ( message == '' ) { 285 jQuery( '.wws-popup__fields-textarea-wrapper' ).addClass( 'wws-shake-animation' ); 286 return; 287 } 288 if( wwsWidget.sendMessage( ( message + wwsObj.pre_defined_text ), whatsappNumber ) == true ) { 289 wwsWidget.logAnalytics( message, number, 'Layout 7' ); 290 wws_ga_and_fb_click_analytics(); 291 } 292 293 } 294 295 if ( wwsObj.popup_layout == 6 ) { 296 297 var message = jQuery( '.wws-popup__input' ).val(); 298 var preMessage = jQuery( '.wws-popup-multi-support-pre-essage' ).val(); 299 var number = jQuery( '.wws-popup__fields-number' ).val(); 300 var whatsappNumber = jQuery( '.wws-popup-multi-support-number' ).val(); 301 var supportPersonId = jQuery( '.wws-popup-multi-support-id' ).val(); 302 303 if ( isGDPRChecked() == false ) return; 304 305 setTimeout( function() { 306 jQuery( '.wws-popup__fields-textarea-wrapper, .wws-popup__fields-number' ).removeClass( 'wws-shake-animation' ); 307 }, 300 ); 308 309 if ( number == '' ) { 310 jQuery( '.wws-popup__fields-number' ).addClass( 'wws-shake-animation' ); 311 return; 312 } 313 314 if ( message == '' ) { 315 jQuery( '.wws-popup__fields-textarea-wrapper' ).addClass( 'wws-shake-animation' ); 316 return; 317 } 318 319 if( wwsWidget.sendMessage( ( message + preMessage ), whatsappNumber ) == true ) { 320 321 wwsWidget.logAnalytics( message, number, 'Layout 6', { 322 supportPersonId: supportPersonId 323 } ); 324 325 wws_ga_and_fb_click_analytics(); 326 327 } 328 329 } 330 331 // if popup template is 1st, 2nd, or 3rd 332 if ( wwsObj.popup_layout == 1 || wwsObj.popup_layout == 2 || wwsObj.popup_layout == 3 ) { 333 334 var message = jQuery( '.wws-popup__input' ).val(); 335 var whatsappNumber = wwsObj.support_number; 336 337 if ( isGDPRChecked() == false ) return; 338 339 setTimeout( function() { 340 jQuery( '.wws-popup__input-wrapper' ).removeClass( 'wws-shake-animation' ); 341 }, 300 ); 342 343 if ( 0 == message.length ) { 344 jQuery( '.wws-popup__input-wrapper' ).addClass( 'wws-shake-animation' ); 345 return; 346 } 347 if ( wwsWidget.sendMessage( ( message + wwsObj.pre_defined_text ), whatsappNumber ) == true ) { 348 if ( 1 == wwsObj.popup_layout ) { 349 wwsWidget.logAnalytics( message, 'N/A', 'Layout 1' ); 350 } else if ( 2 == wwsObj.popup_layout ) { 351 wwsWidget.logAnalytics( message, 'N/A', 'Layout 2' ); 352 } else if ( 3 == wwsObj.popup_layout ) { 353 wwsWidget.logAnalytics( message, 'N/A', 'Layout 3' ); 354 } 355 356 wws_ga_and_fb_click_analytics(); 357 } 358 } 359 360 // if popup template is 4th 361 if ( wwsObj.popup_layout == 4 ) { 362 363 var message = jQuery( '.wws-popup__input' ).val(); 364 var whatsappNumber = wwsObj.support_number; 365 366 if( wwsWidget.sendMessage( ( message + wwsObj.pre_defined_text ), whatsappNumber ) == true ) { 367 wwsWidget.logAnalytics( 'N/A', 'N/A', 'Layout 4' ); 368 wws_ga_and_fb_click_analytics(); 369 } 370 } 371 372 }); 373 374 // Hit enter to send a message. 375 jQuery('.wws-popup__input').on( 'keypress', function (e) { 376 var key = e.which; 377 378 if(key == 13) { // the enter key code 379 jQuery('.wws-popup__send-btn').click(); 380 return false;
381 } 382 }); 383 384 // Group invitation 385 jQuery( '.wws-popup-group-invitation__button' ).on( 'click', function() { 386 wwsWidget.sendGroupInvitation( wwsObj.group_invitation_id ); 387 wwsWidget.logAnalytics(); 388 wws_ga_and_fb_click_analytics() 389 }); 390 391 // autoPopup 392 if ( 'yes' === wwsObj.auto_popup ) { 393 wwsWidget.autoPopup( wwsObj.auto_popup_time ); 394 } 395 396 // popup button display by scroll lenght 397 if ( wwsObj.scroll_lenght != null ) { 398 399 jQuery(document).on( 'scroll', function () { 400 var y = jQuery(window).scrollTop() + jQuery(window).height(); 401 var documentHeight = jQuery(document).height() * wwsObj.scroll_lenght / 100; 402 403 if ( y >= documentHeight - 10 ) { 404 jQuery('.wws-popup-container').fadeIn(); 405 } else { 406 jQuery('.wws-popup-container').fadeOut(); 407 } 408 }); 409 } 410 411 // Layout 6 - open selected support person. 412 jQuery( document ).on( 'click', '[data-wws-multi-support-person-id]', function() { 413 var multiSupportPersonID = jQuery( this ).attr( 'data-wws-multi-support-person-id' ); 414 415 jQuery( '.wws-popup__support-person-wrapper' ).hide(); 416 jQuery( '.wws-popup__support-person-form' ).show(); 417 jQuery( '.wws-popup__support-person-form' ).html( wwsLoader ); 418 419 jQuery.ajax({ 420 url: wwsObj.admin_url, 421 type: 'post', 422 data: { 423 'action': 'wws_view_multi_person_form', 424 'support_person_id': multiSupportPersonID, 425 'post_id' : wwsObj.current_page_id, 426 } 427 }).done(function( response ) { 428 jQuery( '.wws-popup__support-person-form' ).html( response ); 429 if ( '' !== wwsObj.numberMasking) { 430 jQuery( '.wws-popup__fields-number' ).inputmask( wwsObj.numberMasking ); 431 } 432 }); 433 434 } ); 435 436 437 // Layout 6 - close selected support person. 438 jQuery( document ).on( 'click', '[data-wws-multi-support-back]', function() { 439 jQuery( '.wws-popup__support-person-wrapper' ).show(); 440 jQuery( '.wws-popup__support-person-form' ).hide(); 441 } ); 442 443 // Mobile number masking 444 if ( '' !== wwsObj.numberMasking) { 445 jQuery( '.wws-popup__fields-number' ).inputmask( wwsObj.numberMasking ); 446 } 447 448 /** 449 * Generated shortcode button analytics. 450 * 451 * @since 1.9.7 452 * 453 */ 454 jQuery( '.wws-shortcode-btn' ).on( 'click', function() { 455 wwsWidget.logAnalytics( 'N/A', 'N/A', 'Shortcode Button' ); 456 wws_ga_and_fb_click_analytics(); 457 } ); 458 459 460 /** 461 * WooCommerce query button analytics. 462 * 463 * @since 1.9.7 464 * 465 */ 466 jQuery( '.wws-product-query-btn' ).on( 'click', function() { 467 wwsWidget.logAnalytics( 'N/A', 'N/A', 'Woo Query Button' ); 468 wws_ga_and_fb_click_analytics(); 469 } ); 470 471 /** 472 * Click to call. 473 * 474 * @since 2.0.6 475 */ 476 jQuery( '[data-wws-agent-call]' ).on( 'click', function() { 477 var call_number = jQuery( this ).data( 'wws-agent-call' ); 478 479 window.open( 'tel:' + call_number ); 480 } ); 481 482 483 }); // Document ready end here. 484 485})(jQuery)
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.