diff --git a/inc/cleantalk-public.php b/inc/cleantalk-public.php index 9f766dcc1..e2af851e7 100644 --- a/inc/cleantalk-public.php +++ b/inc/cleantalk-public.php @@ -1307,9 +1307,24 @@ function apbct_enqueue_and_localize_public_scripts() global $apbct; $in_footer = Constant::is(Constant::APBCT_SERVICE__PLACE_PUBLIC_JS_SCRIPTS_IN_FOOTER, true); - // Different JS params + + $enqueue = ApbctEnqueue::getInstance(); + + // New bundle for the params + $core_handle = $enqueue->js( + 'apbct_public_new.min.js', + array(), + $in_footer + ); + + // Ald bundle for the rest functionality $bundle_name = ApbctJsBundleResolver::getBundleName($apbct->settings); - ApbctEnqueue::getInstance()->js($bundle_name, array(), $in_footer); + + $enqueue->js( + $bundle_name, + array($core_handle), + $in_footer + ); // Bot detector if ( apbct__is_bot_detector_enabled() && ! apbct_bot_detector_scripts_exclusion()) { diff --git a/js/apbct-public-bundle.min.js b/js/apbct-public-bundle.min.js index ef3449936..ef0577fd5 100644 --- a/js/apbct-public-bundle.min.js +++ b/js/apbct-public-bundle.min.js @@ -1 +1 @@ -function ownKeys(t,e){var n,o=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,n)),o}function _objectSpread(t){for(var e=1;et||r=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var n;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n{var n,e;if(r.data.forEach(function(e){e.encoded_email===a[t].dataset.originalString&&(n=e)}),!1===n.is_allowed)return{v:void 0};if(void 0===a[t].href||0!==a[t].href.indexOf("mailto:")&&0!==a[t].href.indexOf("tel:"))a[t].classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a[t])},2e3);else{if(0===a[t].href.indexOf("mailto:"))e="mailto:";else{if(0!==a[t].href.indexOf("tel:"))return 0;e="tel:"}var o=a[t].href.replace(e,"");ctReplaceInTextNodes(a[t],o,ctHtmlToText(n.decoded_email)),a[t].href=e+n.decoded_email,a[t].querySelectorAll("span.apbct-email-encoder").forEach(function(t){var n="";r.data.forEach(function(e){e.encoded_email===t.dataset.originalString&&(n=e.decoded_email)}),t.textContent=ctHtmlToText(n)})}a[t].removeEventListener("click",ctFillDecodedEmailHandler)})(t))&&e)return e.v}else{var n=r.data[0];a.classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a)},2e3),a.removeEventListener("click",ctFillDecodedEmailHandler)}}function ctReplaceInTextNodes(e,t,n){if(t){e.normalize();for(var o,a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);o=a.nextNode();)if(-1!==o.nodeValue.indexOf(t))return void(o.nodeValue=o.nodeValue.replace(t,function(){return n}))}}function ctHtmlToText(e){return e?(new DOMParser).parseFromString(String(e),"text/html").documentElement.textContent:""}function ctProcessDecodedDataResult(e,t){t.setAttribute("title",""),t.removeAttribute("style"),ctFillDecodedEmail(t,e.decoded_email)}function ctFillDecodedEmail(e,t){e.innerHTML=e.innerHTML.replace(/.+?(
)/,t+"$1")}var ctEmailDecoderIsInitialized=!1,cleantalkModal=(document.addEventListener("DOMContentLoaded",function(){if(!ctEmailDecoderIsInitialized){ctEmailDecoderIsInitialized=!0;var e=document.querySelectorAll("[data-original-string]");if("undefined"!=typeof ctPublic&&(ctPublic.encodedEmailNodes=e),e.length)for(var t=0;t$1')):(r.innerHTML="Loading...",t&&this.load(t)),r.setAttribute("id","cleantalk-modal-content"),n.append(r),this.opened=!0},confirm:function(e){var t,n=1_createClass(function e(t){_classCallCheck(this,e),_defineProperty(this,"ajax_parameters",{}),_defineProperty(this,"restParameters",{}),_defineProperty(this,"selector",null),_defineProperty(this,"elements",[]),_defineProperty(this,"eventCallback",void 0),_defineProperty(this,"eventSelector",void 0),_defineProperty(this,"event",void 0),this.select(t)},[{key:"select",value:function(e){return e instanceof HTMLCollection?(this.selector=null,this.elements=[],this.elements=Array.prototype.slice.call(e)):"object"===_typeof(e)?(this.selector=null,this.elements=[],this.elements[0]=e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect(),this}},{key:"addElement",value:function(e){"object"===_typeof(e)?this.elements.push(e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect()}},{key:"push",value:function(e){this.elements.push(e)}},{key:"reduce",value:function(){this.elements=this.elements.slice(0,-1)}},{key:"deselect",value:function(){this.elements=[]}},{key:"css",value:function(e,t){if(t=t||!1,"object"===_typeof(e)){for(var n in e)if(Object.hasOwn(e,n))for(var o=n.replace(/([-_][a-z])/g,function(e){return e.toUpperCase().replace("-","").replace("_","")}),a=0;a(e=document.createElement(e).constructor,!Boolean(~[HTMLElement,HTMLUnknownElement].indexOf(e))))(t)?n||e.tagName.toLowerCase()===t.toLowerCase():t.match(/^[a-z]/)?n||Boolean(e[t]):n||(null!==this.selector?null!==document.querySelector(this.selector+t):this.isWithoutSelector(e,t)):n}},{key:"isWithoutSelector",value:function(e,t){var n,o=!1,a=_createForOfIteratorHelper(document.querySelectorAll(t));try{for(a.s();!(n=a.n()).done;)o=o||e===n.value}catch(e){a.e(e)}finally{a.f()}return o}},{key:"filter",value:function(e){this.selector=null;for(var t=this.elements.length-1;0<=t;t--)this.isElem(this.elements[t],e)||this.elements.splice(Number(t),1);return this}},{key:"parent",value:function(e){return this.select(this.elements[0].parentElement),void 0===e||this.is(e)||this.deselect(),this}},{key:"parents",value:function(e){for(this.select(this.elements[0]);null!==this.elements[this.elements.length-1].parentElement;)this.push(this.elements[this.elements.length-1].parentElement);return this.elements.splice(0,1),void 0!==e&&this.filter(e),this}},{key:"children",value:function(e){return this.select(this.elements[0].children),void 0!==e&&this.filter(e),this}},{key:"siblings",value:function(e){var t=this.elements[0];return this.parent(),this.children(e),this.elements.splice(this.elements.indexOf(t),1),this}},{key:"remove",value:function(){var e,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(e=t.n()).done;)e.value.remove()}catch(e){t.e(e)}finally{t.f()}}},{key:"after",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.after(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"append",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.append(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"fadeIn",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity+(new Date-n)/o,n=+new Date,+t.style.opacity<1&&(window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16))}var t=a.value,n=(t.style.opacity=0,t.style.display="block",+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}},{key:"fadeOut",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity-(new Date-n)/o,n=+new Date,0<+t.style.opacity?window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16):t.style.display="none"}var t=a.value,n=(t.style.opacity=1,+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}}]))());function selectActualNonce(){var e="";return ctPublicFunctions.hasOwnProperty("_fresh_nonce")&&"string"==typeof ctPublicFunctions._fresh_nonce&&0{function o(e){for(var t in _classCallCheck(this,o),_defineProperty(this,"xhr",new XMLHttpRequest),_defineProperty(this,"method","POST"),_defineProperty(this,"url",""),_defineProperty(this,"async",!0),_defineProperty(this,"user",null),_defineProperty(this,"password",null),_defineProperty(this,"data",{}),_defineProperty(this,"button",null),_defineProperty(this,"spinner",null),_defineProperty(this,"progressbar",null),_defineProperty(this,"context",this),_defineProperty(this,"callback",null),_defineProperty(this,"onErrorCallback",null),_defineProperty(this,"responseType","json"),_defineProperty(this,"headers",{}),_defineProperty(this,"timeout",15e3),_defineProperty(this,"methods_to_convert_data_to_URL",["GET","HEAD"]),_defineProperty(this,"body",null),_defineProperty(this,"http_code",0),_defineProperty(this,"status_text",""),e)void 0!==this[t]&&(this[t]=e[t]);if(this.prepare(),Object.keys(this.data).length&&(this.deleteDoubleJSONEncoding(this.data),this.convertData()),!this.url)return console.log("%cXHR%c not URL provided","color: red; font-weight: bold;","color: grey; font-weight: normal;"),!1;this.xhr.open(this.method,this.url,this.async,this.user,this.password),this.setHeaders(),this.xhr.responseType=this.responseType,this.xhr.timeout=this.timeout,this.xhr.onreadystatechange=function(){this.isWpNonceError()?this.getFreshNonceAndRerunXHR(e):this.onReadyStateChange()}.bind(this),this.xhr.onload=function(){this.onLoad()}.bind(this),this.xhr.onprogress=function(e){this.onProgress(e)}.bind(this),this.xhr.onerror=function(){this.onError()}.bind(this),this.xhr.ontimeout=function(){this.onTimeout()}.bind(this),this.xhr.send(this.body)}return _createClass(o,[{key:"prepare",value:function(){this.button&&(this.button.setAttribute("disabled","disabled"),this.button.style.cursor="not-allowed"),this.spinner&&(this.spinner.style.display="inline")}},{key:"complete",value:function(){this.http_code=this.xhr.status,this.status_text=this.xhr.statusText,this.button&&(this.button.removeAttribute("disabled"),this.button.style.cursor="auto"),this.spinner&&(this.spinner.style.display="none"),this.progressbar&&this.progressbar.fadeOut("slow")}},{key:"onReadyStateChange",value:function(){null!==this.on_ready_state_change&&"function"==typeof this.on_ready_state_change&&this.on_ready_state_change()}},{key:"onProgress",value:function(e){null!==this.on_progress&&"function"==typeof this.on_progress&&this.on_progress()}},{key:"onError",value:function(){console.log("error"),this.complete(),this.error(this.http_code,this.status_text),null!==this.onErrorCallback&&"function"==typeof this.onErrorCallback&&this.onErrorCallback(this.status_text)}},{key:"onTimeout",value:function(){this.complete(),this.error(0,"timeout"),null!==this.onErrorCallback&&"function"==typeof this.onErrorCallback&&this.onErrorCallback("Timeout")}},{key:"onLoad",value:function(){if(this.complete(),"json"===this.responseType){if(null===this.xhr.response)return this.error(this.http_code,this.status_text,"No response"),!1;if(void 0!==this.xhr.response.error)return this.error(this.http_code,this.status_text,this.xhr.response.error),!1}null!==this.callback&&"function"==typeof this.callback&&this.callback.call(this.context,this.xhr.response,this.data)}},{key:"isWpNonceError",value:function(){var e=!1,t=!1;return 4==this.xhr.readyState&&(e="object"===_typeof(this.xhr.response)&&null!==this.xhr.response&&this.xhr.response.hasOwnProperty("data")&&this.xhr.response.data.hasOwnProperty("status")&&403===this.xhr.response.data.status,t="-1"===this.xhr.response&&403===this.xhr.status),e||t}},{key:"getFreshNonceAndRerunXHR",value:function(e){var t,n="";e.hasOwnProperty("headers")&&e.headers.hasOwnProperty("X-WP-Nonce")&&(n=e.headers["X-WP-Nonce"]),""!==(n=e.hasOwnProperty("data")&&e.data.hasOwnProperty("_ajax_nonce")?e.data._ajax_nonce:n)&&((t={method:"POST"}).data={spbc_remote_call_action:"get_fresh_wpnonce",plugin_name:"antispam",nonce_prev:n,initial_request_params:e},t.notJson=!0,t.url=ctPublicFunctions._ajax_url,t.callback=function(){for(var e=arguments.length,t=new Array(e),n=0;n{function o(){for(var e=arguments.length,t=new Array(e),n=0;n{function a(){for(var e=arguments.length,t=new Array(e),n=0;n{return _createClass(function e(){_classCallCheck(this,e),this.config=ApbctFetchProxyConfig},[{key:"findMatchingConfig",value:function(e){for(var t="string"==typeof e?e:null!=e&&"string"==typeof e.href?e.href:"",n=0,o=Object.entries(this.config);nMath.floor((new Date).getTime()/1e3)},isSet:function(e){return null!==localStorage.getItem(e)},delete:function(e){localStorage.removeItem(e)},getCleanTalkData:function(){for(var e={},t=0;t_createClass(function e(){_classCallCheck(this,e)},[{key:"attachEventTokenToMultipageGravityForms",value:function(){document.addEventListener("gform_page_loaded",function(){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||"function"!=typeof setEventTokenField||"function"!=typeof botDetectorLocalStorage||setEventTokenField(botDetectorLocalStorage.get("bot_detector_event_token"))})}},{key:"attachEventTokenToWoocommerceGetRequestAddToCart",value:function(){ctPublic.wc_ajax_add_to_cart||document.querySelectorAll("a.add_to_cart_button:not(.product_type_variable):not(.wc-interactive)").forEach(function(o){o.addEventListener("click",function(e){var t=o.getAttribute("href"),n=apbctLocalStorage.get("bot_detector_event_token");n&&(-1===t.indexOf("?")?t+="?":t+="&",o.setAttribute("href",t+="ct_bot_detector_event_token="+n))})})}},{key:"restartBotDetectorEventTokenAttach",value:function(){var e,t=0_createClass(function e(){_classCallCheck(this,e)},[{key:"attachHiddenFieldsToForms",value:function(e){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||+ctPublic.bot_detector_enabled&&!e||(ctNoCookieAttachHiddenFieldsToForms(),document.addEventListener("gform_page_loaded",ctNoCookieAttachHiddenFieldsToForms))}},{key:"attachVisibleFieldsToForm",value:function(e,t){var n=document.createElement("input"),t=(n.setAttribute("type","hidden"),n.setAttribute("id","apbct_visible_fields_"+t),n.setAttribute("name","apbct_visible_fields"),{});t[0]=this.collectVisibleFields(e),n.value=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),e.append(n)}},{key:"attachVisibleFieldsDuringSubmit",value:function(e,t){"native"!==ctPublic.data__cookies_type&&void 0!==e.target.ctFormIndex&&this.setVisibleFieldsCookie(this.collectVisibleFields(t),e.target.ctFormIndex)}},{key:"constructNoCookieHiddenField",value:function(e){var t="hidden",e=("submit"===e&&(t="submit"),""),n=getCleanTalkStorageDataArray(),n=JSON.stringify(n);return n="_ct_no_cookie_data_"+btoa(unescape(encodeURIComponent(n))),(e=document.createElement("input")).setAttribute("name","ct_no_cookie_hidden_field"),e.setAttribute("value",n),e.setAttribute("type",t),e.classList.add("apbct_special_field"),e.classList.add("ct_no_cookie_hidden_field"),e}},{key:"attachNoCookieDuringSubmit",value:function(e){"none"===ctPublic.data__cookies_type&&e.target&&e.target.action&&-1!==e.target.action.toString().indexOf("mailpoet_subscription_form")&&(window.XMLHttpRequest.prototype.send=function(e){var t,n;+ctPublic.bot_detector_enabled?(t=(new ApbctHandler).toolGetEventToken())&&(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+("data%5Bct_bot_detector_event_token%5D="+t+"&")+e)):(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+e)),setTimeout(function(){window.XMLHttpRequest.prototype.send=defaultSend},0)})}},{key:"setVisibleFieldsCookie",value:function(e,t){var n="object"===_typeof(e)&&null!==e?e:{};if("native"===ctPublic.data__cookies_type)for(var o in n){if(10{function p(){_classCallCheck(this,p)}return _createClass(p,[{key:"excludeForm",value:function(e){return!!this.checkHiddenFieldsExclusions(e,"visible_fields")||!!(e.querySelector('input[name="wspsc_add_cart_submit"]')||e.querySelector('input[name="option"][value="com_vikrentcar"]')||e.querySelector('input[name="option"][value="com_vikbooking"]'))||void 0!==e.elements.apbct_visible_fields&&0{var n=_asyncToGenerator(_regenerator().m(function e(t,n){var o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(+ctPublic.settings__forms__check_external){e.n=1;break}return e.a(2,!1);case 1:o=_createForOfIteratorHelper(r),e.p=2,o.s();case 3:if((a=o.n()).done)e.n=6;else{if((a=a.value).matches(t,n))return a=a.getForm(),e.n=4,i(a);e.n=5}break;case 4:if(e.v)return e.a(2,!0);e.n=5;break;case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,a=e.v,o.e(a);case 8:return e.p=8,o.f(),e.f(8);case 9:return e.a(2,!1)}},e,null,[[2,7,8,9]])}));return function(e,t){return n.apply(this,arguments)}})(),r=[{name:"bitrix24",matches:function(e,t){return document.querySelector(".b24-form")&&e.includes("bitrix/services/main/ajax.php?action=crm.site.form.fill")&&t[1].body instanceof FormData},getForm:function(){return document.querySelector(".b24-form form")}},{name:"sender",matches:function(e,t){return e.includes("stats.sender.net/forms")&&"string"==typeof t[1].body},getForm:function(){for(var e=document.querySelectorAll("iframe"),t=0;t{var t=_asyncToGenerator(_regenerator().m(function e(t){var n,o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}return e.a(2,!1);case 1:return n=c(t),b=!0,e.p=2,e.n=3,new Promise(function(e,t){apbct_public_sendAJAX(n,{async:!0,callback:e,onErrorCallback:t})});case 3:return o=e.v,(a=void 0!==o.apbct&&+o.apbct.blocked||void 0!==o.data&&void 0!==o.data.message)&&(new ApbctShowForbidden).parseBlockMessage(o),e.a(2,a);case 4:return e.p=4,e.a(2,!1);case 5:return e.p=5,b=!1,e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(e){return t.apply(this,arguments)}})(),c=function(e){var t,n={action:"cleantalk_force_ajax_check"},o=_createForOfIteratorHelper(e.elements);try{for(o.s();!(t=o.n()).done;){var a=t.value;a.name&&(n[a.name]=a.value)}}catch(e){o.e(e)}finally{o.f()}return+ctPublic.bot_detector_enabled?n.ct_bot_detector_event_token=apbctLocalStorage.get("bot_detector_event_token"):n.ct_no_cookie_hidden_field=getNoCookieData(),n};window.fetch=_asyncToGenerator(_regenerator().m(function e(){var t,n,o,a,r,i,c,l,s,u,d,p=arguments;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:for(t=p.length,n=new Array(t),o=0;o!(!t||"string"!=typeof t)&&["google.com/recaptcha","gstatic.com/recaptcha","recaptcha.google.com","recaptcha.net","www.google.com/recaptcha","apis.google.com","paypal.com","api.paypal.com","www.paypal.com","js.stripe.com","api.stripe.com","checkout.stripe.com","api.doboard.com"].some(function(e){return t.includes(e)}))(a="string"==typeof n[0]?n[0]:(null==(a=n[0])?void 0:a.url)||""))return e.a(2,h.apply(this,n));e.n=2;break;case 2:if(n&&n[0]&&n[1]&&n[1].body){e.n=3;break}return e.a(2,h.apply(this,n));case 3:return e.n=4,m.processFetch(n);case 4:if(!0===e.v)return e.a(2,Promise.reject(new Error("Forbidden")));e.n=5;break;case 5:if(0{try{return n[0].includes(new URL(ctPublicFunctions._rest_url).pathname+"metform/")}catch(e){}})()))try{n[1].body=_(n[1].body,f(+ctPublic.bot_detector_enabled))}catch(e){}if(0{var t=e.value;"undefined"!=typeof ctPublic&&1==+ctPublic.settings__forms__search_test&&null!==t.getAttribute("apbct-form-sign")&&"native_search"===t.getAttribute("apbct-form-sign")&&(t.apbctSearchPrevOnsubmit=t.onsubmit,t.onsubmit=function(e){return n.searchFormHandler(e,t)})})()}catch(e){t.e(e)}finally{t.f()}}},{key:"searchFormHandler",value:function(e,t){try{var n,o,a,r=t.querySelector('[name*="apbct__email_id__"]'),i=null,c=(null!==r&&null!==r.value&&(i=r.value),getCleanTalkStorageDataArray()),l=apbctLocalStorage.get("bot_detector_event_token");null===c&&null===r&&null===l||(e.preventDefault(),n=function(){null!==r&&r.parentNode.removeChild(r),"function"==typeof t.apbctSearchPrevOnsubmit?t.apbctSearchPrevOnsubmit():HTMLFormElement.prototype.submit.call(t)},o=c,null!==i&&(o.apbct_search_form__honeypot_value=i),o.ct_bot_detector_event_token=l,"string"==typeof o.apbct_pixel_url&&-1!==o.apbct_pixel_url.indexOf("%3A")&&(o.apbct_pixel_url=decodeURIComponent(o.apbct_pixel_url)),void 0!==(a=JSON.stringify(o))&&0!==a.length?ctSetAlternativeCookie(a,{callback:n,onErrorCallback:n,forceAltCookies:!0}):n())}catch(e){console.warn("APBCT search form onsubmit handler error. "+e)}}},{key:"toolForAntiCrawlerCheckDuringBotDetector",value:function(){var e=setInterval(function(){localStorage.bot_detector_event_token&&(ctSetCookie("apbct_bot_detector_exist","1","3600"),clearInterval(e))},500)}},{key:"toolGetEventToken",value:function(){var t=localStorage.getItem("bot_detector_event_token");try{t=JSON.parse(t)}catch(e){t=!1}return!(null===t||!1===t||!t.hasOwnProperty("value")||""===t.value)&&t.value}}])})(),ApbctShowForbidden=(()=>_createClass(function e(){_classCallCheck(this,e)},[{key:"prepareBlockForAjaxForms",value:function(){var o=function(e){if(e.responseText&&-1!==e.responseText.indexOf('"apbct')&&-1===e.responseText.indexOf("DOCTYPE"))try{this.parseBlockMessage(JSON.parse(e.responseText))}catch(e){console.log(e.toString())}}.bind(this);"undefined"!=typeof jQuery?"function"!=typeof jQuery(document).ajaxComplete()?jQuery(document).on("ajaxComplete",function(e,t,n){o(t)}):jQuery(document).ajaxComplete(function(e,t,n){o(t)}):"undefined"!=typeof XMLHttpRequest&&document.addEventListener("readystatechange",function(e){4===e.target.readyState&&o(e.target)})}},{key:"parseBlockMessage",value:function(e){var t,n="";if((void 0!==e.apbct&&(e=e.apbct).blocked&&(n=e.comment),n=void 0!==e.data&&void 0!==(e=e.data).message?e.message:n)&&(document.dispatchEvent(new CustomEvent("apbctAjaxBockAlert",{bubbles:!0,detail:{message:n}})),cleantalkModal.loaded=n,cleantalkModal.open(),1==+e.stop_script&&(window.stop(),e.integration&&"NEXForms"===e.integration&&((t=document.querySelector("form.submit-nex-form button.nex-submit"))&&(t.disabled=!0,t.style.opacity="0.5",t.style.cursor="not-allowed",t.style.pointerEvents="none",t.style.backgroundColor="#ccc",t.style.color="#fff"),t=document.querySelector("div.nex_success_message"))&&(t.style.display="none"),e.integration)&&"ElfsightForm"===e.integration)){var o=[document];try{document.querySelectorAll("iframe").forEach(function(e){try{e.contentDocument&&o.push(e.contentDocument)}catch(e){}})}catch(e){}for(var a=0,r=o;a_createClass(function e(){_classCallCheck(this,e)},[{key:"extract",value:function(e){if(e&&"string"==typeof e){try{e=decodeURIComponent(e)}catch(e){return!1}var t=document.querySelectorAll("form"),n=this.getIdFromAjax(e);if(n){var o,a=_createForOfIteratorHelper(t);try{for(a.s();!(o=a.n()).done;){var r=o.value,i=this.findParentContainer(r);if(i){var c=this.getIdFromHTML(i);if(c===n){var l=i.querySelector("input[id^=apbct_visible_fields_]");if(null!=l&&l.value)return l.value}}}}catch(e){a.e(e)}finally{a.f()}}}return!1}},{key:"getIdFromAjax",value:function(e){return console.warn("getIdFromAjax must be implemented by child class"),null}},{key:"findParentContainer",value:function(e){return console.warn("findParentContainer must be implemented by child class"),null}},{key:"getIdFromHTML",value:function(e){return console.warn("getIdFromHTML must be implemented by child class"),null}}],[{key:"createExtractor",value:function(e){switch(e){case"action=nf_ajax_submit":return new ApbctNinjaFormsVisibleFields;case"action=mailpoet":return new ApbctMailpoetVisibleFields;default:return null}}}]))(),ApbctNinjaFormsVisibleFields=(()=>{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/"id"\s*:\s*"?(\d+)"/,/form_id\s*[:\s]*"?(\d+)"/,/nf-form-(\d+)/,/"id":(\d+)/];t{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/form_id\s*[:\s]*"?(\d+)"/,/data\[form_id\]=(\d+)/,/form_id=(\d+)/];t{function o(){_classCallCheck(this,o)}return _createClass(o,null,[{key:"getFrontendDataLog",value:function(){var e=("undefined"!=typeof ctPublicFunctions&&ctPublicFunctions.cookiePrefix?ctPublicFunctions.cookiePrefix:"")+o.LOG_KEY,t=o.LOG_KEY;if(void 0!==apbctLocalStorage&&apbctLocalStorage.get){var n=apbctLocalStorage.get(e)||apbctLocalStorage.get(t)||null;if(n&&"string"==typeof n)try{return JSON.parse(n)}catch(e){return""}return n}n=(n=localStorage.getItem(e))||localStorage.getItem(t)||null;try{return"string"==typeof n?JSON.parse(n):n}catch(e){return""}}},{key:"asDTO",value:function(){return{botd_logic_loaded:o.botdLogicLoaded,botd_wrapper_loaded:o.botdWrapperLoaded,frontend_data_log:"",transport_enabled:1}}},{key:"detectScripts",value:function(){if(o.botdWrapperLoaded&&o.botdLogicLoaded)return!0;for(var e=document.getElementsByTagName("script"),t=0;t .comment-body *[class*="comment-author"]',document.querySelector(".apbct-trp .comment-author .comment-author-link")&&(e='.apbct-trp *[class*="comment-author-link"]'),0!==(e=document.querySelectorAll(e+',.apbct-trp > .wp-block-group *[class*="comment-author"],.apbct-trp *[class*="review__author"],.apbct-trp td[class*="column-author"] > strong')).length)&&(e.forEach(function(e,t){var n,o,a,r,i,c,l,s,u;e.className.indexOf("review")<0&&"undefined"==typeof pagenow&&e.parentElement.className.indexOf("group")<0&&"DIV"!=e.tagName||e.querySelector(".comment-metadata")||((n=document.createElement("div")).setAttribute("class","apbct-real-user-badge"),(o=document.createElement("img")).setAttribute("src",d.imgPersonUrl),o.setAttribute("class","apbct-real-user-popup-img"),(a=document.createElement("div")).setAttribute("class","apbct-real-user-popup"),(c=document.createElement("strong")).append(d.phrases.trpHeading),(r=document.createElement("div")).setAttribute("class","apbct-real-user-popup-content_row"),(i=document.createElement("div")).append(" "),i.append(c),i.append(d.phrases.trpContent1),(c=document.createElement("div")).style.display="flex",c.style.gap="5px",(l=document.createElement("div")).append(d.phrases.trpContent2),c.append(l),p&&(l=document.createElement("div"),(s=document.createElement("a")).setAttribute("href",d.trpContentLink),s.setAttribute("target","_blank"),(u=document.createElement("img")).setAttribute("src",ctAdminCommon.new_window_gif),u.setAttribute("alt","New window"),u.setAttribute("style","padding-top:3px"),s.append(u),l.append(s),c.append(l)),r.append(i,c),a.append(r),n.append(o),e.append(n),e.append(a))}),document.querySelectorAll(".apbct-real-user-badge").forEach(function(o){var a=void 0,e=(t.body.addEventListener("click",function(e){-1==e.target.className.indexOf("apbct-real-user")&&-1==e.target.parentElement.className.indexOf("apbct-real-user")&&closeAllPopupTRP()}),o.addEventListener("click",function(){var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.toggle("visible")}),o.addEventListener("mouseenter",function(){closeAllPopupTRP();var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.add("visible")}),o.addEventListener("mouseleave",function(){var t=this;a=setTimeout(function(){var e=t.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.nextElementSibling);e.addEventListener("mouseenter",function(){clearTimeout(a),e.classList.add("visible")}),e.addEventListener("mouseleave",function(){a=setTimeout(function(){e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.addEventListener("touchend",function(){var n=this;a=setTimeout(function(){var e=n.nextElementSibling,t=window.getSelection();e&&t&&e.classList.contains("apbct-real-user-popup")&&0===t.toString().length?e.classList.remove("visible"):(clearTimeout(a),document.addEventListener("selectionchange",function e(){var t=window.getSelection();t&&0===t.toString().length&&(a=setTimeout(function(){var e=o.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},3e3),document.removeEventListener("selectionchange",e))}))},3e3)})})))}); \ No newline at end of file +function _callSuper(e,t,n){return t=_getPrototypeOf(t),_possibleConstructorReturn(e,_isNativeReflectConstruct()?Reflect.construct(t,n||[],_getPrototypeOf(e).constructor):t.apply(e,n))}function _possibleConstructorReturn(e,t){if(t&&("object"==_typeof(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_isNativeReflectConstruct=function(){return!!e})()}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function ownKeys(t,e){var n,o=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,n)),o}function _objectSpread(t){for(var e=1;et||r=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var n;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n{var n,e;if(r.data.forEach(function(e){e.encoded_email===a[t].dataset.originalString&&(n=e)}),!1===n.is_allowed)return{v:void 0};if(void 0===a[t].href||0!==a[t].href.indexOf("mailto:")&&0!==a[t].href.indexOf("tel:"))a[t].classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a[t])},2e3);else{if(0===a[t].href.indexOf("mailto:"))e="mailto:";else{if(0!==a[t].href.indexOf("tel:"))return 0;e="tel:"}var o=a[t].href.replace(e,"");ctReplaceInTextNodes(a[t],o,ctHtmlToText(n.decoded_email)),a[t].href=e+n.decoded_email,a[t].querySelectorAll("span.apbct-email-encoder").forEach(function(t){var n="";r.data.forEach(function(e){e.encoded_email===t.dataset.originalString&&(n=e.decoded_email)}),t.textContent=ctHtmlToText(n)})}a[t].removeEventListener("click",ctFillDecodedEmailHandler)})(t))&&e)return e.v}else{var n=r.data[0];a.classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a)},2e3),a.removeEventListener("click",ctFillDecodedEmailHandler)}}function ctReplaceInTextNodes(e,t,n){if(t){e.normalize();for(var o,a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);o=a.nextNode();)if(-1!==o.nodeValue.indexOf(t))return void(o.nodeValue=o.nodeValue.replace(t,function(){return n}))}}function ctHtmlToText(e){return e?(new DOMParser).parseFromString(String(e),"text/html").documentElement.textContent:""}function ctProcessDecodedDataResult(e,t){t.setAttribute("title",""),t.removeAttribute("style"),ctFillDecodedEmail(t,e.decoded_email)}function ctFillDecodedEmail(e,t){e.innerHTML=e.innerHTML.replace(/.+?(
)/,t+"$1")}var ctEmailDecoderIsInitialized=!1,cleantalkModal=(document.addEventListener("DOMContentLoaded",function(){if(!ctEmailDecoderIsInitialized){ctEmailDecoderIsInitialized=!0;var e=document.querySelectorAll("[data-original-string]");if("undefined"!=typeof ctPublic&&(ctPublic.encodedEmailNodes=e),e.length)for(var t=0;t$1')):(r.innerHTML="Loading...",t&&this.load(t)),r.setAttribute("id","cleantalk-modal-content"),n.append(r),this.opened=!0},confirm:function(e){var t,n=1_createClass(function e(t){_classCallCheck(this,e),_defineProperty(this,"ajax_parameters",{}),_defineProperty(this,"restParameters",{}),_defineProperty(this,"selector",null),_defineProperty(this,"elements",[]),_defineProperty(this,"eventCallback",void 0),_defineProperty(this,"eventSelector",void 0),_defineProperty(this,"event",void 0),this.select(t)},[{key:"select",value:function(e){return e instanceof HTMLCollection?(this.selector=null,this.elements=[],this.elements=Array.prototype.slice.call(e)):"object"===_typeof(e)?(this.selector=null,this.elements=[],this.elements[0]=e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect(),this}},{key:"addElement",value:function(e){"object"===_typeof(e)?this.elements.push(e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect()}},{key:"push",value:function(e){this.elements.push(e)}},{key:"reduce",value:function(){this.elements=this.elements.slice(0,-1)}},{key:"deselect",value:function(){this.elements=[]}},{key:"css",value:function(e,t){if(t=t||!1,"object"===_typeof(e)){for(var n in e)if(Object.hasOwn(e,n))for(var o=n.replace(/([-_][a-z])/g,function(e){return e.toUpperCase().replace("-","").replace("_","")}),a=0;a(e=document.createElement(e).constructor,!Boolean(~[HTMLElement,HTMLUnknownElement].indexOf(e))))(t)?n||e.tagName.toLowerCase()===t.toLowerCase():t.match(/^[a-z]/)?n||Boolean(e[t]):n||(null!==this.selector?null!==document.querySelector(this.selector+t):this.isWithoutSelector(e,t)):n}},{key:"isWithoutSelector",value:function(e,t){var n,o=!1,a=_createForOfIteratorHelper(document.querySelectorAll(t));try{for(a.s();!(n=a.n()).done;)o=o||e===n.value}catch(e){a.e(e)}finally{a.f()}return o}},{key:"filter",value:function(e){this.selector=null;for(var t=this.elements.length-1;0<=t;t--)this.isElem(this.elements[t],e)||this.elements.splice(Number(t),1);return this}},{key:"parent",value:function(e){return this.select(this.elements[0].parentElement),void 0===e||this.is(e)||this.deselect(),this}},{key:"parents",value:function(e){for(this.select(this.elements[0]);null!==this.elements[this.elements.length-1].parentElement;)this.push(this.elements[this.elements.length-1].parentElement);return this.elements.splice(0,1),void 0!==e&&this.filter(e),this}},{key:"children",value:function(e){return this.select(this.elements[0].children),void 0!==e&&this.filter(e),this}},{key:"siblings",value:function(e){var t=this.elements[0];return this.parent(),this.children(e),this.elements.splice(this.elements.indexOf(t),1),this}},{key:"remove",value:function(){var e,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(e=t.n()).done;)e.value.remove()}catch(e){t.e(e)}finally{t.f()}}},{key:"after",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.after(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"append",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.append(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"fadeIn",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity+(new Date-n)/o,n=+new Date,+t.style.opacity<1&&(window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16))}var t=a.value,n=(t.style.opacity=0,t.style.display="block",+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}},{key:"fadeOut",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity-(new Date-n)/o,n=+new Date,0<+t.style.opacity?window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16):t.style.display="none"}var t=a.value,n=(t.style.opacity=1,+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}}]))());function apbct(e){return(new ApbctCore).select(e)}Object.prototype.hasOwn||Object.defineProperty(Object.prototype,"hasOwn",{value:function(e){return Object.prototype.hasOwnProperty.call(this,e)},enumerable:!1,configurable:!0,writable:!0});var ApbctFetchProxyCallbacks={mailchimpBlock:function(e){try{for(var t=localStorage.length-1;0<=t;t--){var n=localStorage.key(t);n&&-1!==n.indexOf("mcforms")&&localStorage.removeItem(n)}}catch(e){console.warn("Error clearing localStorage by mcforms mask:",e)}}},ApbctFetchProxyConfig={mailchimp:{selector:".mcforms-wrapper",urlPattern:"mcf-integrations-mcmktg.mlchmpcompprduse2.iks2.a.intuit.com/gateway/receive",externalForm:!0,action:"cleantalk_force_mailchimp_shadowroot_check",callbackAllow:!1,callbackBlock:ApbctFetchProxyCallbacks.mailchimpBlock},otterform:{selector:".otter-form__container",urlPattern:"otter/v1/form/frontend",externalForm:!1,action:"cleantalk_force_otterform_check",callbackAllow:!1,callbackBlock:!1},elfsight:{selector:'[class*="elfsight-app"]',urlPattern:"data.elfsight.com/public/resources/form-submissions",externalForm:!0,action:"cleantalk_force_elfsight_check",payloadKey:"elfsight_payload",callbackAllow:!1,callbackBlock:!1}},ApbctFetchProxyProtection=(()=>{return _createClass(function e(){_classCallCheck(this,e),this.config=ApbctFetchProxyConfig},[{key:"findMatchingConfig",value:function(e){for(var t="string"==typeof e?e:null!=e&&"string"==typeof e.href?e.href:"",n=0,o=Object.entries(this.config);n_createClass(function e(){_classCallCheck(this,e)},[{key:"attachEventTokenToMultipageGravityForms",value:function(){document.addEventListener("gform_page_loaded",function(){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||"function"!=typeof setEventTokenField||"function"!=typeof botDetectorLocalStorage||setEventTokenField(botDetectorLocalStorage.get("bot_detector_event_token"))})}},{key:"attachEventTokenToWoocommerceGetRequestAddToCart",value:function(){ctPublic.wc_ajax_add_to_cart||document.querySelectorAll("a.add_to_cart_button:not(.product_type_variable):not(.wc-interactive)").forEach(function(o){o.addEventListener("click",function(e){var t=o.getAttribute("href"),n=apbctLocalStorage.get("bot_detector_event_token");n&&(-1===t.indexOf("?")?t+="?":t+="&",o.setAttribute("href",t+="ct_bot_detector_event_token="+n))})})}},{key:"restartBotDetectorEventTokenAttach",value:function(){var e,t=0_createClass(function e(){_classCallCheck(this,e)},[{key:"attachHiddenFieldsToForms",value:function(e){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||+ctPublic.bot_detector_enabled&&!e||(ctNoCookieAttachHiddenFieldsToForms(),document.addEventListener("gform_page_loaded",ctNoCookieAttachHiddenFieldsToForms))}},{key:"attachVisibleFieldsToForm",value:function(e,t){var n=document.createElement("input"),t=(n.setAttribute("type","hidden"),n.setAttribute("id","apbct_visible_fields_"+t),n.setAttribute("name","apbct_visible_fields"),{});t[0]=this.collectVisibleFields(e),n.value=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),e.append(n)}},{key:"attachVisibleFieldsDuringSubmit",value:function(e,t){"native"!==ctPublic.data__cookies_type&&void 0!==e.target.ctFormIndex&&this.setVisibleFieldsCookie(this.collectVisibleFields(t),e.target.ctFormIndex)}},{key:"constructNoCookieHiddenField",value:function(e){var t="hidden",e=("submit"===e&&(t="submit"),""),n=getCleanTalkStorageDataArray(),n=JSON.stringify(n);return n="_ct_no_cookie_data_"+btoa(unescape(encodeURIComponent(n))),(e=document.createElement("input")).setAttribute("name","ct_no_cookie_hidden_field"),e.setAttribute("value",n),e.setAttribute("type",t),e.classList.add("apbct_special_field"),e.classList.add("ct_no_cookie_hidden_field"),e}},{key:"attachNoCookieDuringSubmit",value:function(e){"none"===ctPublic.data__cookies_type&&e.target&&e.target.action&&-1!==e.target.action.toString().indexOf("mailpoet_subscription_form")&&(window.XMLHttpRequest.prototype.send=function(e){var t,n;+ctPublic.bot_detector_enabled?(t=(new ApbctHandler).toolGetEventToken())&&(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+("data%5Bct_bot_detector_event_token%5D="+t+"&")+e)):(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+e)),setTimeout(function(){window.XMLHttpRequest.prototype.send=defaultSend},0)})}},{key:"setVisibleFieldsCookie",value:function(e,t){var n="object"===_typeof(e)&&null!==e?e:{};if("native"===ctPublic.data__cookies_type)for(var o in n){if(10{function p(){_classCallCheck(this,p)}return _createClass(p,[{key:"excludeForm",value:function(e){return!!this.checkHiddenFieldsExclusions(e,"visible_fields")||!!(e.querySelector('input[name="wspsc_add_cart_submit"]')||e.querySelector('input[name="option"][value="com_vikrentcar"]')||e.querySelector('input[name="option"][value="com_vikbooking"]'))||void 0!==e.elements.apbct_visible_fields&&0{var n=_asyncToGenerator(_regenerator().m(function e(t,n){var o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(+ctPublic.settings__forms__check_external){e.n=1;break}return e.a(2,!1);case 1:o=_createForOfIteratorHelper(r),e.p=2,o.s();case 3:if((a=o.n()).done)e.n=6;else{if((a=a.value).matches(t,n))return a=a.getForm(),e.n=4,i(a);e.n=5}break;case 4:if(e.v)return e.a(2,!0);e.n=5;break;case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,a=e.v,o.e(a);case 8:return e.p=8,o.f(),e.f(8);case 9:return e.a(2,!1)}},e,null,[[2,7,8,9]])}));return function(e,t){return n.apply(this,arguments)}})(),r=[{name:"bitrix24",matches:function(e,t){return document.querySelector(".b24-form")&&e.includes("bitrix/services/main/ajax.php?action=crm.site.form.fill")&&t[1].body instanceof FormData},getForm:function(){return document.querySelector(".b24-form form")}},{name:"sender",matches:function(e,t){return e.includes("stats.sender.net/forms")&&"string"==typeof t[1].body},getForm:function(){for(var e=document.querySelectorAll("iframe"),t=0;t{var t=_asyncToGenerator(_regenerator().m(function e(t){var n,o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}return e.a(2,!1);case 1:return n=c(t),b=!0,e.p=2,e.n=3,new Promise(function(e,t){apbct_public_sendAJAX(n,{async:!0,callback:e,onErrorCallback:t})});case 3:return o=e.v,(a=void 0!==o.apbct&&+o.apbct.blocked||void 0!==o.data&&void 0!==o.data.message)&&(new ApbctShowForbidden).parseBlockMessage(o),e.a(2,a);case 4:return e.p=4,e.a(2,!1);case 5:return e.p=5,b=!1,e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(e){return t.apply(this,arguments)}})(),c=function(e){var t,n={action:"cleantalk_force_ajax_check"},o=_createForOfIteratorHelper(e.elements);try{for(o.s();!(t=o.n()).done;){var a=t.value;a.name&&(n[a.name]=a.value)}}catch(e){o.e(e)}finally{o.f()}return+ctPublic.bot_detector_enabled?n.ct_bot_detector_event_token=apbctLocalStorage.get("bot_detector_event_token"):n.ct_no_cookie_hidden_field=getNoCookieData(),n};window.fetch=_asyncToGenerator(_regenerator().m(function e(){var t,n,o,a,r,i,c,l,s,u,d,p=arguments;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:for(t=p.length,n=new Array(t),o=0;o!(!t||"string"!=typeof t)&&["google.com/recaptcha","gstatic.com/recaptcha","recaptcha.google.com","recaptcha.net","www.google.com/recaptcha","apis.google.com","paypal.com","api.paypal.com","www.paypal.com","js.stripe.com","api.stripe.com","checkout.stripe.com","api.doboard.com"].some(function(e){return t.includes(e)}))(a="string"==typeof n[0]?n[0]:(null==(a=n[0])?void 0:a.url)||""))return e.a(2,y.apply(this,n));e.n=2;break;case 2:if(n&&n[0]&&n[1]&&n[1].body){e.n=3;break}return e.a(2,y.apply(this,n));case 3:return e.n=4,m.processFetch(n);case 4:if(!0===e.v)return e.a(2,Promise.reject(new Error("Forbidden")));e.n=5;break;case 5:if(0{try{return n[0].includes(new URL(ctPublicFunctions._rest_url).pathname+"metform/")}catch(e){}})()))try{n[1].body=_(n[1].body,f(+ctPublic.bot_detector_enabled))}catch(e){}if(0{var t=e.value;"undefined"!=typeof ctPublic&&1==+ctPublic.settings__forms__search_test&&null!==t.getAttribute("apbct-form-sign")&&"native_search"===t.getAttribute("apbct-form-sign")&&(t.apbctSearchPrevOnsubmit=t.onsubmit,t.onsubmit=function(e){return n.searchFormHandler(e,t)})})()}catch(e){t.e(e)}finally{t.f()}}},{key:"searchFormHandler",value:function(e,t){try{var n,o,a,r=t.querySelector('[name*="apbct__email_id__"]'),i=null,c=(null!==r&&null!==r.value&&(i=r.value),getCleanTalkStorageDataArray()),l=apbctLocalStorage.get("bot_detector_event_token");null===c&&null===r&&null===l||(e.preventDefault(),n=function(){null!==r&&r.parentNode.removeChild(r),"function"==typeof t.apbctSearchPrevOnsubmit?t.apbctSearchPrevOnsubmit():HTMLFormElement.prototype.submit.call(t)},o=c,null!==i&&(o.apbct_search_form__honeypot_value=i),o.ct_bot_detector_event_token=l,"string"==typeof o.apbct_pixel_url&&-1!==o.apbct_pixel_url.indexOf("%3A")&&(o.apbct_pixel_url=decodeURIComponent(o.apbct_pixel_url)),void 0!==(a=JSON.stringify(o))&&0!==a.length?ctSetAlternativeCookie(a,{callback:n,onErrorCallback:n,forceAltCookies:!0}):n())}catch(e){console.warn("APBCT search form onsubmit handler error. "+e)}}},{key:"toolForAntiCrawlerCheckDuringBotDetector",value:function(){var e=setInterval(function(){localStorage.bot_detector_event_token&&(ctSetCookie("apbct_bot_detector_exist","1","3600"),clearInterval(e))},500)}},{key:"toolGetEventToken",value:function(){var t=localStorage.getItem("bot_detector_event_token");try{t=JSON.parse(t)}catch(e){t=!1}return!(null===t||!1===t||!t.hasOwnProperty("value")||""===t.value)&&t.value}}])})(),ApbctShowForbidden=(()=>_createClass(function e(){_classCallCheck(this,e)},[{key:"prepareBlockForAjaxForms",value:function(){var o=function(e){if(e.responseText&&-1!==e.responseText.indexOf('"apbct')&&-1===e.responseText.indexOf("DOCTYPE"))try{this.parseBlockMessage(JSON.parse(e.responseText))}catch(e){console.log(e.toString())}}.bind(this);"undefined"!=typeof jQuery?"function"!=typeof jQuery(document).ajaxComplete()?jQuery(document).on("ajaxComplete",function(e,t,n){o(t)}):jQuery(document).ajaxComplete(function(e,t,n){o(t)}):"undefined"!=typeof XMLHttpRequest&&document.addEventListener("readystatechange",function(e){4===e.target.readyState&&o(e.target)})}},{key:"parseBlockMessage",value:function(e){var t,n="";if((void 0!==e.apbct&&(e=e.apbct).blocked&&(n=e.comment),n=void 0!==e.data&&void 0!==(e=e.data).message?e.message:n)&&(document.dispatchEvent(new CustomEvent("apbctAjaxBockAlert",{bubbles:!0,detail:{message:n}})),cleantalkModal.loaded=n,cleantalkModal.open(),1==+e.stop_script&&(window.stop(),e.integration&&"NEXForms"===e.integration&&((t=document.querySelector("form.submit-nex-form button.nex-submit"))&&(t.disabled=!0,t.style.opacity="0.5",t.style.cursor="not-allowed",t.style.pointerEvents="none",t.style.backgroundColor="#ccc",t.style.color="#fff"),t=document.querySelector("div.nex_success_message"))&&(t.style.display="none"),e.integration)&&"ElfsightForm"===e.integration)){var o=[document];try{document.querySelectorAll("iframe").forEach(function(e){try{e.contentDocument&&o.push(e.contentDocument)}catch(e){}})}catch(e){}for(var a=0,r=o;a_createClass(function e(){_classCallCheck(this,e)},[{key:"extract",value:function(e){if(e&&"string"==typeof e){try{e=decodeURIComponent(e)}catch(e){return!1}var t=document.querySelectorAll("form"),n=this.getIdFromAjax(e);if(n){var o,a=_createForOfIteratorHelper(t);try{for(a.s();!(o=a.n()).done;){var r=o.value,i=this.findParentContainer(r);if(i){var c=this.getIdFromHTML(i);if(c===n){var l=i.querySelector("input[id^=apbct_visible_fields_]");if(null!=l&&l.value)return l.value}}}}catch(e){a.e(e)}finally{a.f()}}}return!1}},{key:"getIdFromAjax",value:function(e){return console.warn("getIdFromAjax must be implemented by child class"),null}},{key:"findParentContainer",value:function(e){return console.warn("findParentContainer must be implemented by child class"),null}},{key:"getIdFromHTML",value:function(e){return console.warn("getIdFromHTML must be implemented by child class"),null}}],[{key:"createExtractor",value:function(e){switch(e){case"action=nf_ajax_submit":return new ApbctNinjaFormsVisibleFields;case"action=mailpoet":return new ApbctMailpoetVisibleFields;default:return null}}}]))(),ApbctNinjaFormsVisibleFields=(()=>{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/"id"\s*:\s*"?(\d+)"/,/form_id\s*[:\s]*"?(\d+)"/,/nf-form-(\d+)/,/"id":(\d+)/];t{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/form_id\s*[:\s]*"?(\d+)"/,/data\[form_id\]=(\d+)/,/form_id=(\d+)/];t{function o(){_classCallCheck(this,o)}return _createClass(o,null,[{key:"getFrontendDataLog",value:function(){var e=("undefined"!=typeof ctPublicFunctions&&ctPublicFunctions.cookiePrefix?ctPublicFunctions.cookiePrefix:"")+o.LOG_KEY,t=o.LOG_KEY;if("undefined"!=typeof apbctLocalStorage&&apbctLocalStorage.get){var n=apbctLocalStorage.get(e)||apbctLocalStorage.get(t)||null;if(n&&"string"==typeof n)try{return JSON.parse(n)}catch(e){return""}return n}n=(n=localStorage.getItem(e))||localStorage.getItem(t)||null;try{return"string"==typeof n?JSON.parse(n):n}catch(e){return""}}},{key:"asDTO",value:function(){return{botd_logic_loaded:o.botdLogicLoaded,botd_wrapper_loaded:o.botdWrapperLoaded,frontend_data_log:"",transport_enabled:1}}},{key:"detectScripts",value:function(){if(o.botdWrapperLoaded&&o.botdLogicLoaded)return!0;for(var e=document.getElementsByTagName("script"),t=0;t .comment-body *[class*="comment-author"]',document.querySelector(".apbct-trp .comment-author .comment-author-link")&&(e='.apbct-trp *[class*="comment-author-link"]'),0!==(e=document.querySelectorAll(e+',.apbct-trp > .wp-block-group *[class*="comment-author"],.apbct-trp *[class*="review__author"],.apbct-trp td[class*="column-author"] > strong')).length)&&(e.forEach(function(e,t){var n,o,a,r,i,c,l,s,u;e.className.indexOf("review")<0&&"undefined"==typeof pagenow&&e.parentElement.className.indexOf("group")<0&&"DIV"!=e.tagName||e.querySelector(".comment-metadata")||((n=document.createElement("div")).setAttribute("class","apbct-real-user-badge"),(o=document.createElement("img")).setAttribute("src",d.imgPersonUrl),o.setAttribute("class","apbct-real-user-popup-img"),(a=document.createElement("div")).setAttribute("class","apbct-real-user-popup"),(c=document.createElement("strong")).append(d.phrases.trpHeading),(r=document.createElement("div")).setAttribute("class","apbct-real-user-popup-content_row"),(i=document.createElement("div")).append(" "),i.append(c),i.append(d.phrases.trpContent1),(c=document.createElement("div")).style.display="flex",c.style.gap="5px",(l=document.createElement("div")).append(d.phrases.trpContent2),c.append(l),p&&(l=document.createElement("div"),(s=document.createElement("a")).setAttribute("href",d.trpContentLink),s.setAttribute("target","_blank"),(u=document.createElement("img")).setAttribute("src",ctAdminCommon.new_window_gif),u.setAttribute("alt","New window"),u.setAttribute("style","padding-top:3px"),s.append(u),l.append(s),c.append(l)),r.append(i,c),a.append(r),n.append(o),e.append(n),e.append(a))}),document.querySelectorAll(".apbct-real-user-badge").forEach(function(o){var a=void 0,e=(t.body.addEventListener("click",function(e){-1==e.target.className.indexOf("apbct-real-user")&&-1==e.target.parentElement.className.indexOf("apbct-real-user")&&closeAllPopupTRP()}),o.addEventListener("click",function(){var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.toggle("visible")}),o.addEventListener("mouseenter",function(){closeAllPopupTRP();var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.add("visible")}),o.addEventListener("mouseleave",function(){var t=this;a=setTimeout(function(){var e=t.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.nextElementSibling);e.addEventListener("mouseenter",function(){clearTimeout(a),e.classList.add("visible")}),e.addEventListener("mouseleave",function(){a=setTimeout(function(){e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.addEventListener("touchend",function(){var n=this;a=setTimeout(function(){var e=n.nextElementSibling,t=window.getSelection();e&&t&&e.classList.contains("apbct-real-user-popup")&&0===t.toString().length?e.classList.remove("visible"):(clearTimeout(a),document.addEventListener("selectionchange",function e(){var t=window.getSelection();t&&0===t.toString().length&&(a=setTimeout(function(){var e=o.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},3e3),document.removeEventListener("selectionchange",e))}))},3e3)})})))}); diff --git a/js/apbct-public-bundle_ext-protection.min.js b/js/apbct-public-bundle_ext-protection.min.js index 47205625e..2ca126f33 100644 --- a/js/apbct-public-bundle_ext-protection.min.js +++ b/js/apbct-public-bundle_ext-protection.min.js @@ -1 +1 @@ -function ownKeys(t,e){var n,o=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,n)),o}function _objectSpread(t){for(var e=1;et||r=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var n;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n{var n,e;if(r.data.forEach(function(e){e.encoded_email===a[t].dataset.originalString&&(n=e)}),!1===n.is_allowed)return{v:void 0};if(void 0===a[t].href||0!==a[t].href.indexOf("mailto:")&&0!==a[t].href.indexOf("tel:"))a[t].classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a[t])},2e3);else{if(0===a[t].href.indexOf("mailto:"))e="mailto:";else{if(0!==a[t].href.indexOf("tel:"))return 0;e="tel:"}var o=a[t].href.replace(e,"");ctReplaceInTextNodes(a[t],o,ctHtmlToText(n.decoded_email)),a[t].href=e+n.decoded_email,a[t].querySelectorAll("span.apbct-email-encoder").forEach(function(t){var n="";r.data.forEach(function(e){e.encoded_email===t.dataset.originalString&&(n=e.decoded_email)}),t.textContent=ctHtmlToText(n)})}a[t].removeEventListener("click",ctFillDecodedEmailHandler)})(t))&&e)return e.v}else{var n=r.data[0];a.classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a)},2e3),a.removeEventListener("click",ctFillDecodedEmailHandler)}}function ctReplaceInTextNodes(e,t,n){if(t){e.normalize();for(var o,a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);o=a.nextNode();)if(-1!==o.nodeValue.indexOf(t))return void(o.nodeValue=o.nodeValue.replace(t,function(){return n}))}}function ctHtmlToText(e){return e?(new DOMParser).parseFromString(String(e),"text/html").documentElement.textContent:""}function ctProcessDecodedDataResult(e,t){t.setAttribute("title",""),t.removeAttribute("style"),ctFillDecodedEmail(t,e.decoded_email)}function ctFillDecodedEmail(e,t){e.innerHTML=e.innerHTML.replace(/.+?(
)/,t+"$1")}var ctEmailDecoderIsInitialized=!1,cleantalkModal=(document.addEventListener("DOMContentLoaded",function(){if(!ctEmailDecoderIsInitialized){ctEmailDecoderIsInitialized=!0;var e=document.querySelectorAll("[data-original-string]");if("undefined"!=typeof ctPublic&&(ctPublic.encodedEmailNodes=e),e.length)for(var t=0;t$1')):(r.innerHTML="Loading...",t&&this.load(t)),r.setAttribute("id","cleantalk-modal-content"),n.append(r),this.opened=!0},confirm:function(e){var t,n=1_createClass(function e(t){_classCallCheck(this,e),_defineProperty(this,"ajax_parameters",{}),_defineProperty(this,"restParameters",{}),_defineProperty(this,"selector",null),_defineProperty(this,"elements",[]),_defineProperty(this,"eventCallback",void 0),_defineProperty(this,"eventSelector",void 0),_defineProperty(this,"event",void 0),this.select(t)},[{key:"select",value:function(e){return e instanceof HTMLCollection?(this.selector=null,this.elements=[],this.elements=Array.prototype.slice.call(e)):"object"===_typeof(e)?(this.selector=null,this.elements=[],this.elements[0]=e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect(),this}},{key:"addElement",value:function(e){"object"===_typeof(e)?this.elements.push(e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect()}},{key:"push",value:function(e){this.elements.push(e)}},{key:"reduce",value:function(){this.elements=this.elements.slice(0,-1)}},{key:"deselect",value:function(){this.elements=[]}},{key:"css",value:function(e,t){if(t=t||!1,"object"===_typeof(e)){for(var n in e)if(Object.hasOwn(e,n))for(var o=n.replace(/([-_][a-z])/g,function(e){return e.toUpperCase().replace("-","").replace("_","")}),a=0;a(e=document.createElement(e).constructor,!Boolean(~[HTMLElement,HTMLUnknownElement].indexOf(e))))(t)?n||e.tagName.toLowerCase()===t.toLowerCase():t.match(/^[a-z]/)?n||Boolean(e[t]):n||(null!==this.selector?null!==document.querySelector(this.selector+t):this.isWithoutSelector(e,t)):n}},{key:"isWithoutSelector",value:function(e,t){var n,o=!1,a=_createForOfIteratorHelper(document.querySelectorAll(t));try{for(a.s();!(n=a.n()).done;)o=o||e===n.value}catch(e){a.e(e)}finally{a.f()}return o}},{key:"filter",value:function(e){this.selector=null;for(var t=this.elements.length-1;0<=t;t--)this.isElem(this.elements[t],e)||this.elements.splice(Number(t),1);return this}},{key:"parent",value:function(e){return this.select(this.elements[0].parentElement),void 0===e||this.is(e)||this.deselect(),this}},{key:"parents",value:function(e){for(this.select(this.elements[0]);null!==this.elements[this.elements.length-1].parentElement;)this.push(this.elements[this.elements.length-1].parentElement);return this.elements.splice(0,1),void 0!==e&&this.filter(e),this}},{key:"children",value:function(e){return this.select(this.elements[0].children),void 0!==e&&this.filter(e),this}},{key:"siblings",value:function(e){var t=this.elements[0];return this.parent(),this.children(e),this.elements.splice(this.elements.indexOf(t),1),this}},{key:"remove",value:function(){var e,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(e=t.n()).done;)e.value.remove()}catch(e){t.e(e)}finally{t.f()}}},{key:"after",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.after(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"append",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.append(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"fadeIn",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity+(new Date-n)/o,n=+new Date,+t.style.opacity<1&&(window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16))}var t=a.value,n=(t.style.opacity=0,t.style.display="block",+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}},{key:"fadeOut",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity-(new Date-n)/o,n=+new Date,0<+t.style.opacity?window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16):t.style.display="none"}var t=a.value,n=(t.style.opacity=1,+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}}]))());function selectActualNonce(){var e="";return ctPublicFunctions.hasOwnProperty("_fresh_nonce")&&"string"==typeof ctPublicFunctions._fresh_nonce&&0{function o(e){for(var t in _classCallCheck(this,o),_defineProperty(this,"xhr",new XMLHttpRequest),_defineProperty(this,"method","POST"),_defineProperty(this,"url",""),_defineProperty(this,"async",!0),_defineProperty(this,"user",null),_defineProperty(this,"password",null),_defineProperty(this,"data",{}),_defineProperty(this,"button",null),_defineProperty(this,"spinner",null),_defineProperty(this,"progressbar",null),_defineProperty(this,"context",this),_defineProperty(this,"callback",null),_defineProperty(this,"onErrorCallback",null),_defineProperty(this,"responseType","json"),_defineProperty(this,"headers",{}),_defineProperty(this,"timeout",15e3),_defineProperty(this,"methods_to_convert_data_to_URL",["GET","HEAD"]),_defineProperty(this,"body",null),_defineProperty(this,"http_code",0),_defineProperty(this,"status_text",""),e)void 0!==this[t]&&(this[t]=e[t]);if(this.prepare(),Object.keys(this.data).length&&(this.deleteDoubleJSONEncoding(this.data),this.convertData()),!this.url)return console.log("%cXHR%c not URL provided","color: red; font-weight: bold;","color: grey; font-weight: normal;"),!1;this.xhr.open(this.method,this.url,this.async,this.user,this.password),this.setHeaders(),this.xhr.responseType=this.responseType,this.xhr.timeout=this.timeout,this.xhr.onreadystatechange=function(){this.isWpNonceError()?this.getFreshNonceAndRerunXHR(e):this.onReadyStateChange()}.bind(this),this.xhr.onload=function(){this.onLoad()}.bind(this),this.xhr.onprogress=function(e){this.onProgress(e)}.bind(this),this.xhr.onerror=function(){this.onError()}.bind(this),this.xhr.ontimeout=function(){this.onTimeout()}.bind(this),this.xhr.send(this.body)}return _createClass(o,[{key:"prepare",value:function(){this.button&&(this.button.setAttribute("disabled","disabled"),this.button.style.cursor="not-allowed"),this.spinner&&(this.spinner.style.display="inline")}},{key:"complete",value:function(){this.http_code=this.xhr.status,this.status_text=this.xhr.statusText,this.button&&(this.button.removeAttribute("disabled"),this.button.style.cursor="auto"),this.spinner&&(this.spinner.style.display="none"),this.progressbar&&this.progressbar.fadeOut("slow")}},{key:"onReadyStateChange",value:function(){null!==this.on_ready_state_change&&"function"==typeof this.on_ready_state_change&&this.on_ready_state_change()}},{key:"onProgress",value:function(e){null!==this.on_progress&&"function"==typeof this.on_progress&&this.on_progress()}},{key:"onError",value:function(){console.log("error"),this.complete(),this.error(this.http_code,this.status_text),null!==this.onErrorCallback&&"function"==typeof this.onErrorCallback&&this.onErrorCallback(this.status_text)}},{key:"onTimeout",value:function(){this.complete(),this.error(0,"timeout"),null!==this.onErrorCallback&&"function"==typeof this.onErrorCallback&&this.onErrorCallback("Timeout")}},{key:"onLoad",value:function(){if(this.complete(),"json"===this.responseType){if(null===this.xhr.response)return this.error(this.http_code,this.status_text,"No response"),!1;if(void 0!==this.xhr.response.error)return this.error(this.http_code,this.status_text,this.xhr.response.error),!1}null!==this.callback&&"function"==typeof this.callback&&this.callback.call(this.context,this.xhr.response,this.data)}},{key:"isWpNonceError",value:function(){var e=!1,t=!1;return 4==this.xhr.readyState&&(e="object"===_typeof(this.xhr.response)&&null!==this.xhr.response&&this.xhr.response.hasOwnProperty("data")&&this.xhr.response.data.hasOwnProperty("status")&&403===this.xhr.response.data.status,t="-1"===this.xhr.response&&403===this.xhr.status),e||t}},{key:"getFreshNonceAndRerunXHR",value:function(e){var t,n="";e.hasOwnProperty("headers")&&e.headers.hasOwnProperty("X-WP-Nonce")&&(n=e.headers["X-WP-Nonce"]),""!==(n=e.hasOwnProperty("data")&&e.data.hasOwnProperty("_ajax_nonce")?e.data._ajax_nonce:n)&&((t={method:"POST"}).data={spbc_remote_call_action:"get_fresh_wpnonce",plugin_name:"antispam",nonce_prev:n,initial_request_params:e},t.notJson=!0,t.url=ctPublicFunctions._ajax_url,t.callback=function(){for(var e=arguments.length,t=new Array(e),n=0;n{function o(){for(var e=arguments.length,t=new Array(e),n=0;n{function a(){for(var e=arguments.length,t=new Array(e),n=0;n{return _createClass(function e(){_classCallCheck(this,e),this.config=ApbctFetchProxyConfig},[{key:"findMatchingConfig",value:function(e){for(var t="string"==typeof e?e:null!=e&&"string"==typeof e.href?e.href:"",n=0,o=Object.entries(this.config);nMath.floor((new Date).getTime()/1e3)},isSet:function(e){return null!==localStorage.getItem(e)},delete:function(e){localStorage.removeItem(e)},getCleanTalkData:function(){for(var e={},t=0;t_createClass(function e(){_classCallCheck(this,e)},[{key:"attachEventTokenToMultipageGravityForms",value:function(){document.addEventListener("gform_page_loaded",function(){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||"function"!=typeof setEventTokenField||"function"!=typeof botDetectorLocalStorage||setEventTokenField(botDetectorLocalStorage.get("bot_detector_event_token"))})}},{key:"attachEventTokenToWoocommerceGetRequestAddToCart",value:function(){ctPublic.wc_ajax_add_to_cart||document.querySelectorAll("a.add_to_cart_button:not(.product_type_variable):not(.wc-interactive)").forEach(function(o){o.addEventListener("click",function(e){var t=o.getAttribute("href"),n=apbctLocalStorage.get("bot_detector_event_token");n&&(-1===t.indexOf("?")?t+="?":t+="&",o.setAttribute("href",t+="ct_bot_detector_event_token="+n))})})}},{key:"restartBotDetectorEventTokenAttach",value:function(){var e,t=0_createClass(function e(){_classCallCheck(this,e)},[{key:"attachHiddenFieldsToForms",value:function(e){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||+ctPublic.bot_detector_enabled&&!e||(ctNoCookieAttachHiddenFieldsToForms(),document.addEventListener("gform_page_loaded",ctNoCookieAttachHiddenFieldsToForms))}},{key:"attachVisibleFieldsToForm",value:function(e,t){var n=document.createElement("input"),t=(n.setAttribute("type","hidden"),n.setAttribute("id","apbct_visible_fields_"+t),n.setAttribute("name","apbct_visible_fields"),{});t[0]=this.collectVisibleFields(e),n.value=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),e.append(n)}},{key:"attachVisibleFieldsDuringSubmit",value:function(e,t){"native"!==ctPublic.data__cookies_type&&void 0!==e.target.ctFormIndex&&this.setVisibleFieldsCookie(this.collectVisibleFields(t),e.target.ctFormIndex)}},{key:"constructNoCookieHiddenField",value:function(e){var t="hidden",e=("submit"===e&&(t="submit"),""),n=getCleanTalkStorageDataArray(),n=JSON.stringify(n);return n="_ct_no_cookie_data_"+btoa(unescape(encodeURIComponent(n))),(e=document.createElement("input")).setAttribute("name","ct_no_cookie_hidden_field"),e.setAttribute("value",n),e.setAttribute("type",t),e.classList.add("apbct_special_field"),e.classList.add("ct_no_cookie_hidden_field"),e}},{key:"attachNoCookieDuringSubmit",value:function(e){"none"===ctPublic.data__cookies_type&&e.target&&e.target.action&&-1!==e.target.action.toString().indexOf("mailpoet_subscription_form")&&(window.XMLHttpRequest.prototype.send=function(e){var t,n;+ctPublic.bot_detector_enabled?(t=(new ApbctHandler).toolGetEventToken())&&(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+("data%5Bct_bot_detector_event_token%5D="+t+"&")+e)):(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+e)),setTimeout(function(){window.XMLHttpRequest.prototype.send=defaultSend},0)})}},{key:"setVisibleFieldsCookie",value:function(e,t){var n="object"===_typeof(e)&&null!==e?e:{};if("native"===ctPublic.data__cookies_type)for(var o in n){if(10{function p(){_classCallCheck(this,p)}return _createClass(p,[{key:"excludeForm",value:function(e){return!!this.checkHiddenFieldsExclusions(e,"visible_fields")||!!(e.querySelector('input[name="wspsc_add_cart_submit"]')||e.querySelector('input[name="option"][value="com_vikrentcar"]')||e.querySelector('input[name="option"][value="com_vikbooking"]'))||void 0!==e.elements.apbct_visible_fields&&0{var n=_asyncToGenerator(_regenerator().m(function e(t,n){var o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(+ctPublic.settings__forms__check_external){e.n=1;break}return e.a(2,!1);case 1:o=_createForOfIteratorHelper(r),e.p=2,o.s();case 3:if((a=o.n()).done)e.n=6;else{if((a=a.value).matches(t,n))return a=a.getForm(),e.n=4,i(a);e.n=5}break;case 4:if(e.v)return e.a(2,!0);e.n=5;break;case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,a=e.v,o.e(a);case 8:return e.p=8,o.f(),e.f(8);case 9:return e.a(2,!1)}},e,null,[[2,7,8,9]])}));return function(e,t){return n.apply(this,arguments)}})(),r=[{name:"bitrix24",matches:function(e,t){return document.querySelector(".b24-form")&&e.includes("bitrix/services/main/ajax.php?action=crm.site.form.fill")&&t[1].body instanceof FormData},getForm:function(){return document.querySelector(".b24-form form")}},{name:"sender",matches:function(e,t){return e.includes("stats.sender.net/forms")&&"string"==typeof t[1].body},getForm:function(){for(var e=document.querySelectorAll("iframe"),t=0;t{var t=_asyncToGenerator(_regenerator().m(function e(t){var n,o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}return e.a(2,!1);case 1:return n=c(t),b=!0,e.p=2,e.n=3,new Promise(function(e,t){apbct_public_sendAJAX(n,{async:!0,callback:e,onErrorCallback:t})});case 3:return o=e.v,(a=void 0!==o.apbct&&+o.apbct.blocked||void 0!==o.data&&void 0!==o.data.message)&&(new ApbctShowForbidden).parseBlockMessage(o),e.a(2,a);case 4:return e.p=4,e.a(2,!1);case 5:return e.p=5,b=!1,e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(e){return t.apply(this,arguments)}})(),c=function(e){var t,n={action:"cleantalk_force_ajax_check"},o=_createForOfIteratorHelper(e.elements);try{for(o.s();!(t=o.n()).done;){var a=t.value;a.name&&(n[a.name]=a.value)}}catch(e){o.e(e)}finally{o.f()}return+ctPublic.bot_detector_enabled?n.ct_bot_detector_event_token=apbctLocalStorage.get("bot_detector_event_token"):n.ct_no_cookie_hidden_field=getNoCookieData(),n};window.fetch=_asyncToGenerator(_regenerator().m(function e(){var t,n,o,a,r,i,c,l,s,u,d,p=arguments;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:for(t=p.length,n=new Array(t),o=0;o!(!t||"string"!=typeof t)&&["google.com/recaptcha","gstatic.com/recaptcha","recaptcha.google.com","recaptcha.net","www.google.com/recaptcha","apis.google.com","paypal.com","api.paypal.com","www.paypal.com","js.stripe.com","api.stripe.com","checkout.stripe.com","api.doboard.com"].some(function(e){return t.includes(e)}))(a="string"==typeof n[0]?n[0]:(null==(a=n[0])?void 0:a.url)||""))return e.a(2,h.apply(this,n));e.n=2;break;case 2:if(n&&n[0]&&n[1]&&n[1].body){e.n=3;break}return e.a(2,h.apply(this,n));case 3:return e.n=4,_.processFetch(n);case 4:if(!0===e.v)return e.a(2,Promise.reject(new Error("Forbidden")));e.n=5;break;case 5:if(0{try{return n[0].includes(new URL(ctPublicFunctions._rest_url).pathname+"metform/")}catch(e){}})()))try{n[1].body=m(n[1].body,f(+ctPublic.bot_detector_enabled))}catch(e){}if(0{var t=e.value;"undefined"!=typeof ctPublic&&1==+ctPublic.settings__forms__search_test&&null!==t.getAttribute("apbct-form-sign")&&"native_search"===t.getAttribute("apbct-form-sign")&&(t.apbctSearchPrevOnsubmit=t.onsubmit,t.onsubmit=function(e){return n.searchFormHandler(e,t)})})()}catch(e){t.e(e)}finally{t.f()}}},{key:"searchFormHandler",value:function(e,t){try{var n,o,a,r=t.querySelector('[name*="apbct__email_id__"]'),i=null,c=(null!==r&&null!==r.value&&(i=r.value),getCleanTalkStorageDataArray()),l=apbctLocalStorage.get("bot_detector_event_token");null===c&&null===r&&null===l||(e.preventDefault(),n=function(){null!==r&&r.parentNode.removeChild(r),"function"==typeof t.apbctSearchPrevOnsubmit?t.apbctSearchPrevOnsubmit():HTMLFormElement.prototype.submit.call(t)},o=c,null!==i&&(o.apbct_search_form__honeypot_value=i),o.ct_bot_detector_event_token=l,"string"==typeof o.apbct_pixel_url&&-1!==o.apbct_pixel_url.indexOf("%3A")&&(o.apbct_pixel_url=decodeURIComponent(o.apbct_pixel_url)),void 0!==(a=JSON.stringify(o))&&0!==a.length?ctSetAlternativeCookie(a,{callback:n,onErrorCallback:n,forceAltCookies:!0}):n())}catch(e){console.warn("APBCT search form onsubmit handler error. "+e)}}},{key:"toolForAntiCrawlerCheckDuringBotDetector",value:function(){var e=setInterval(function(){localStorage.bot_detector_event_token&&(ctSetCookie("apbct_bot_detector_exist","1","3600"),clearInterval(e))},500)}},{key:"toolGetEventToken",value:function(){var t=localStorage.getItem("bot_detector_event_token");try{t=JSON.parse(t)}catch(e){t=!1}return!(null===t||!1===t||!t.hasOwnProperty("value")||""===t.value)&&t.value}}])})(),ApbctShowForbidden=(()=>_createClass(function e(){_classCallCheck(this,e)},[{key:"prepareBlockForAjaxForms",value:function(){var o=function(e){if(e.responseText&&-1!==e.responseText.indexOf('"apbct')&&-1===e.responseText.indexOf("DOCTYPE"))try{this.parseBlockMessage(JSON.parse(e.responseText))}catch(e){console.log(e.toString())}}.bind(this);"undefined"!=typeof jQuery?"function"!=typeof jQuery(document).ajaxComplete()?jQuery(document).on("ajaxComplete",function(e,t,n){o(t)}):jQuery(document).ajaxComplete(function(e,t,n){o(t)}):"undefined"!=typeof XMLHttpRequest&&document.addEventListener("readystatechange",function(e){4===e.target.readyState&&o(e.target)})}},{key:"parseBlockMessage",value:function(e){var t,n="";if((void 0!==e.apbct&&(e=e.apbct).blocked&&(n=e.comment),n=void 0!==e.data&&void 0!==(e=e.data).message?e.message:n)&&(document.dispatchEvent(new CustomEvent("apbctAjaxBockAlert",{bubbles:!0,detail:{message:n}})),cleantalkModal.loaded=n,cleantalkModal.open(),1==+e.stop_script&&(window.stop(),e.integration&&"NEXForms"===e.integration&&((t=document.querySelector("form.submit-nex-form button.nex-submit"))&&(t.disabled=!0,t.style.opacity="0.5",t.style.cursor="not-allowed",t.style.pointerEvents="none",t.style.backgroundColor="#ccc",t.style.color="#fff"),t=document.querySelector("div.nex_success_message"))&&(t.style.display="none"),e.integration)&&"ElfsightForm"===e.integration)){var o=[document];try{document.querySelectorAll("iframe").forEach(function(e){try{e.contentDocument&&o.push(e.contentDocument)}catch(e){}})}catch(e){}for(var a=0,r=o;a_createClass(function e(){_classCallCheck(this,e)},[{key:"extract",value:function(e){if(e&&"string"==typeof e){try{e=decodeURIComponent(e)}catch(e){return!1}var t=document.querySelectorAll("form"),n=this.getIdFromAjax(e);if(n){var o,a=_createForOfIteratorHelper(t);try{for(a.s();!(o=a.n()).done;){var r=o.value,i=this.findParentContainer(r);if(i){var c=this.getIdFromHTML(i);if(c===n){var l=i.querySelector("input[id^=apbct_visible_fields_]");if(null!=l&&l.value)return l.value}}}}catch(e){a.e(e)}finally{a.f()}}}return!1}},{key:"getIdFromAjax",value:function(e){return console.warn("getIdFromAjax must be implemented by child class"),null}},{key:"findParentContainer",value:function(e){return console.warn("findParentContainer must be implemented by child class"),null}},{key:"getIdFromHTML",value:function(e){return console.warn("getIdFromHTML must be implemented by child class"),null}}],[{key:"createExtractor",value:function(e){switch(e){case"action=nf_ajax_submit":return new ApbctNinjaFormsVisibleFields;case"action=mailpoet":return new ApbctMailpoetVisibleFields;default:return null}}}]))(),ApbctNinjaFormsVisibleFields=(()=>{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/"id"\s*:\s*"?(\d+)"/,/form_id\s*[:\s]*"?(\d+)"/,/nf-form-(\d+)/,/"id":(\d+)/];t{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/form_id\s*[:\s]*"?(\d+)"/,/data\[form_id\]=(\d+)/,/form_id=(\d+)/];t{function o(){_classCallCheck(this,o)}return _createClass(o,null,[{key:"getFrontendDataLog",value:function(){var e=("undefined"!=typeof ctPublicFunctions&&ctPublicFunctions.cookiePrefix?ctPublicFunctions.cookiePrefix:"")+o.LOG_KEY,t=o.LOG_KEY;if(void 0!==apbctLocalStorage&&apbctLocalStorage.get){var n=apbctLocalStorage.get(e)||apbctLocalStorage.get(t)||null;if(n&&"string"==typeof n)try{return JSON.parse(n)}catch(e){return""}return n}n=(n=localStorage.getItem(e))||localStorage.getItem(t)||null;try{return"string"==typeof n?JSON.parse(n):n}catch(e){return""}}},{key:"asDTO",value:function(){return{botd_logic_loaded:o.botdLogicLoaded,botd_wrapper_loaded:o.botdWrapperLoaded,frontend_data_log:"",transport_enabled:1}}},{key:"detectScripts",value:function(){if(o.botdWrapperLoaded&&o.botdLogicLoaded)return!0;for(var e=document.getElementsByTagName("script"),t=0;t .comment-body *[class*="comment-author"]',document.querySelector(".apbct-trp .comment-author .comment-author-link")&&(e='.apbct-trp *[class*="comment-author-link"]'),0!==(e=document.querySelectorAll(e+',.apbct-trp > .wp-block-group *[class*="comment-author"],.apbct-trp *[class*="review__author"],.apbct-trp td[class*="column-author"] > strong')).length)&&(e.forEach(function(e,t){var n,o,a,r,i,c,l,s,u;e.className.indexOf("review")<0&&"undefined"==typeof pagenow&&e.parentElement.className.indexOf("group")<0&&"DIV"!=e.tagName||e.querySelector(".comment-metadata")||((n=document.createElement("div")).setAttribute("class","apbct-real-user-badge"),(o=document.createElement("img")).setAttribute("src",d.imgPersonUrl),o.setAttribute("class","apbct-real-user-popup-img"),(a=document.createElement("div")).setAttribute("class","apbct-real-user-popup"),(c=document.createElement("strong")).append(d.phrases.trpHeading),(r=document.createElement("div")).setAttribute("class","apbct-real-user-popup-content_row"),(i=document.createElement("div")).append(" "),i.append(c),i.append(d.phrases.trpContent1),(c=document.createElement("div")).style.display="flex",c.style.gap="5px",(l=document.createElement("div")).append(d.phrases.trpContent2),c.append(l),p&&(l=document.createElement("div"),(s=document.createElement("a")).setAttribute("href",d.trpContentLink),s.setAttribute("target","_blank"),(u=document.createElement("img")).setAttribute("src",ctAdminCommon.new_window_gif),u.setAttribute("alt","New window"),u.setAttribute("style","padding-top:3px"),s.append(u),l.append(s),c.append(l)),r.append(i,c),a.append(r),n.append(o),e.append(n),e.append(a))}),document.querySelectorAll(".apbct-real-user-badge").forEach(function(o){var a=void 0,e=(t.body.addEventListener("click",function(e){-1==e.target.className.indexOf("apbct-real-user")&&-1==e.target.parentElement.className.indexOf("apbct-real-user")&&closeAllPopupTRP()}),o.addEventListener("click",function(){var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.toggle("visible")}),o.addEventListener("mouseenter",function(){closeAllPopupTRP();var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.add("visible")}),o.addEventListener("mouseleave",function(){var t=this;a=setTimeout(function(){var e=t.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.nextElementSibling);e.addEventListener("mouseenter",function(){clearTimeout(a),e.classList.add("visible")}),e.addEventListener("mouseleave",function(){a=setTimeout(function(){e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.addEventListener("touchend",function(){var n=this;a=setTimeout(function(){var e=n.nextElementSibling,t=window.getSelection();e&&t&&e.classList.contains("apbct-real-user-popup")&&0===t.toString().length?e.classList.remove("visible"):(clearTimeout(a),document.addEventListener("selectionchange",function e(){var t=window.getSelection();t&&0===t.toString().length&&(a=setTimeout(function(){var e=o.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},3e3),document.removeEventListener("selectionchange",e))}))},3e3)})})))}); \ No newline at end of file +function _callSuper(e,t,n){return t=_getPrototypeOf(t),_possibleConstructorReturn(e,_isNativeReflectConstruct()?Reflect.construct(t,n||[],_getPrototypeOf(e).constructor):t.apply(e,n))}function _possibleConstructorReturn(e,t){if(t&&("object"==_typeof(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_isNativeReflectConstruct=function(){return!!e})()}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function ownKeys(t,e){var n,o=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,n)),o}function _objectSpread(t){for(var e=1;et||r=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var n;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n{var n,e;if(r.data.forEach(function(e){e.encoded_email===a[t].dataset.originalString&&(n=e)}),!1===n.is_allowed)return{v:void 0};if(void 0===a[t].href||0!==a[t].href.indexOf("mailto:")&&0!==a[t].href.indexOf("tel:"))a[t].classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a[t])},2e3);else{if(0===a[t].href.indexOf("mailto:"))e="mailto:";else{if(0!==a[t].href.indexOf("tel:"))return 0;e="tel:"}var o=a[t].href.replace(e,"");ctReplaceInTextNodes(a[t],o,ctHtmlToText(n.decoded_email)),a[t].href=e+n.decoded_email,a[t].querySelectorAll("span.apbct-email-encoder").forEach(function(t){var n="";r.data.forEach(function(e){e.encoded_email===t.dataset.originalString&&(n=e.decoded_email)}),t.textContent=ctHtmlToText(n)})}a[t].removeEventListener("click",ctFillDecodedEmailHandler)})(t))&&e)return e.v}else{var n=r.data[0];a.classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a)},2e3),a.removeEventListener("click",ctFillDecodedEmailHandler)}}function ctReplaceInTextNodes(e,t,n){if(t){e.normalize();for(var o,a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);o=a.nextNode();)if(-1!==o.nodeValue.indexOf(t))return void(o.nodeValue=o.nodeValue.replace(t,function(){return n}))}}function ctHtmlToText(e){return e?(new DOMParser).parseFromString(String(e),"text/html").documentElement.textContent:""}function ctProcessDecodedDataResult(e,t){t.setAttribute("title",""),t.removeAttribute("style"),ctFillDecodedEmail(t,e.decoded_email)}function ctFillDecodedEmail(e,t){e.innerHTML=e.innerHTML.replace(/.+?(
)/,t+"$1")}var ctEmailDecoderIsInitialized=!1,cleantalkModal=(document.addEventListener("DOMContentLoaded",function(){if(!ctEmailDecoderIsInitialized){ctEmailDecoderIsInitialized=!0;var e=document.querySelectorAll("[data-original-string]");if("undefined"!=typeof ctPublic&&(ctPublic.encodedEmailNodes=e),e.length)for(var t=0;t$1')):(r.innerHTML="Loading...",t&&this.load(t)),r.setAttribute("id","cleantalk-modal-content"),n.append(r),this.opened=!0},confirm:function(e){var t,n=1_createClass(function e(t){_classCallCheck(this,e),_defineProperty(this,"ajax_parameters",{}),_defineProperty(this,"restParameters",{}),_defineProperty(this,"selector",null),_defineProperty(this,"elements",[]),_defineProperty(this,"eventCallback",void 0),_defineProperty(this,"eventSelector",void 0),_defineProperty(this,"event",void 0),this.select(t)},[{key:"select",value:function(e){return e instanceof HTMLCollection?(this.selector=null,this.elements=[],this.elements=Array.prototype.slice.call(e)):"object"===_typeof(e)?(this.selector=null,this.elements=[],this.elements[0]=e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect(),this}},{key:"addElement",value:function(e){"object"===_typeof(e)?this.elements.push(e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect()}},{key:"push",value:function(e){this.elements.push(e)}},{key:"reduce",value:function(){this.elements=this.elements.slice(0,-1)}},{key:"deselect",value:function(){this.elements=[]}},{key:"css",value:function(e,t){if(t=t||!1,"object"===_typeof(e)){for(var n in e)if(Object.hasOwn(e,n))for(var o=n.replace(/([-_][a-z])/g,function(e){return e.toUpperCase().replace("-","").replace("_","")}),a=0;a(e=document.createElement(e).constructor,!Boolean(~[HTMLElement,HTMLUnknownElement].indexOf(e))))(t)?n||e.tagName.toLowerCase()===t.toLowerCase():t.match(/^[a-z]/)?n||Boolean(e[t]):n||(null!==this.selector?null!==document.querySelector(this.selector+t):this.isWithoutSelector(e,t)):n}},{key:"isWithoutSelector",value:function(e,t){var n,o=!1,a=_createForOfIteratorHelper(document.querySelectorAll(t));try{for(a.s();!(n=a.n()).done;)o=o||e===n.value}catch(e){a.e(e)}finally{a.f()}return o}},{key:"filter",value:function(e){this.selector=null;for(var t=this.elements.length-1;0<=t;t--)this.isElem(this.elements[t],e)||this.elements.splice(Number(t),1);return this}},{key:"parent",value:function(e){return this.select(this.elements[0].parentElement),void 0===e||this.is(e)||this.deselect(),this}},{key:"parents",value:function(e){for(this.select(this.elements[0]);null!==this.elements[this.elements.length-1].parentElement;)this.push(this.elements[this.elements.length-1].parentElement);return this.elements.splice(0,1),void 0!==e&&this.filter(e),this}},{key:"children",value:function(e){return this.select(this.elements[0].children),void 0!==e&&this.filter(e),this}},{key:"siblings",value:function(e){var t=this.elements[0];return this.parent(),this.children(e),this.elements.splice(this.elements.indexOf(t),1),this}},{key:"remove",value:function(){var e,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(e=t.n()).done;)e.value.remove()}catch(e){t.e(e)}finally{t.f()}}},{key:"after",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.after(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"append",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.append(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"fadeIn",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity+(new Date-n)/o,n=+new Date,+t.style.opacity<1&&(window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16))}var t=a.value,n=(t.style.opacity=0,t.style.display="block",+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}},{key:"fadeOut",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity-(new Date-n)/o,n=+new Date,0<+t.style.opacity?window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16):t.style.display="none"}var t=a.value,n=(t.style.opacity=1,+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}}]))());function apbct(e){return(new ApbctCore).select(e)}Object.prototype.hasOwn||Object.defineProperty(Object.prototype,"hasOwn",{value:function(e){return Object.prototype.hasOwnProperty.call(this,e)},enumerable:!1,configurable:!0,writable:!0});var ApbctFetchProxyCallbacks={mailchimpBlock:function(e){try{for(var t=localStorage.length-1;0<=t;t--){var n=localStorage.key(t);n&&-1!==n.indexOf("mcforms")&&localStorage.removeItem(n)}}catch(e){console.warn("Error clearing localStorage by mcforms mask:",e)}}},ApbctFetchProxyConfig={mailchimp:{selector:".mcforms-wrapper",urlPattern:"mcf-integrations-mcmktg.mlchmpcompprduse2.iks2.a.intuit.com/gateway/receive",externalForm:!0,action:"cleantalk_force_mailchimp_shadowroot_check",callbackAllow:!1,callbackBlock:ApbctFetchProxyCallbacks.mailchimpBlock},otterform:{selector:".otter-form__container",urlPattern:"otter/v1/form/frontend",externalForm:!1,action:"cleantalk_force_otterform_check",callbackAllow:!1,callbackBlock:!1},elfsight:{selector:'[class*="elfsight-app"]',urlPattern:"data.elfsight.com/public/resources/form-submissions",externalForm:!0,action:"cleantalk_force_elfsight_check",payloadKey:"elfsight_payload",callbackAllow:!1,callbackBlock:!1}},ApbctFetchProxyProtection=(()=>{return _createClass(function e(){_classCallCheck(this,e),this.config=ApbctFetchProxyConfig},[{key:"findMatchingConfig",value:function(e){for(var t="string"==typeof e?e:null!=e&&"string"==typeof e.href?e.href:"",n=0,o=Object.entries(this.config);n_createClass(function e(){_classCallCheck(this,e)},[{key:"attachEventTokenToMultipageGravityForms",value:function(){document.addEventListener("gform_page_loaded",function(){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||"function"!=typeof setEventTokenField||"function"!=typeof botDetectorLocalStorage||setEventTokenField(botDetectorLocalStorage.get("bot_detector_event_token"))})}},{key:"attachEventTokenToWoocommerceGetRequestAddToCart",value:function(){ctPublic.wc_ajax_add_to_cart||document.querySelectorAll("a.add_to_cart_button:not(.product_type_variable):not(.wc-interactive)").forEach(function(o){o.addEventListener("click",function(e){var t=o.getAttribute("href"),n=apbctLocalStorage.get("bot_detector_event_token");n&&(-1===t.indexOf("?")?t+="?":t+="&",o.setAttribute("href",t+="ct_bot_detector_event_token="+n))})})}},{key:"restartBotDetectorEventTokenAttach",value:function(){var e,t=0_createClass(function e(){_classCallCheck(this,e)},[{key:"attachHiddenFieldsToForms",value:function(e){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||+ctPublic.bot_detector_enabled&&!e||(ctNoCookieAttachHiddenFieldsToForms(),document.addEventListener("gform_page_loaded",ctNoCookieAttachHiddenFieldsToForms))}},{key:"attachVisibleFieldsToForm",value:function(e,t){var n=document.createElement("input"),t=(n.setAttribute("type","hidden"),n.setAttribute("id","apbct_visible_fields_"+t),n.setAttribute("name","apbct_visible_fields"),{});t[0]=this.collectVisibleFields(e),n.value=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),e.append(n)}},{key:"attachVisibleFieldsDuringSubmit",value:function(e,t){"native"!==ctPublic.data__cookies_type&&void 0!==e.target.ctFormIndex&&this.setVisibleFieldsCookie(this.collectVisibleFields(t),e.target.ctFormIndex)}},{key:"constructNoCookieHiddenField",value:function(e){var t="hidden",e=("submit"===e&&(t="submit"),""),n=getCleanTalkStorageDataArray(),n=JSON.stringify(n);return n="_ct_no_cookie_data_"+btoa(unescape(encodeURIComponent(n))),(e=document.createElement("input")).setAttribute("name","ct_no_cookie_hidden_field"),e.setAttribute("value",n),e.setAttribute("type",t),e.classList.add("apbct_special_field"),e.classList.add("ct_no_cookie_hidden_field"),e}},{key:"attachNoCookieDuringSubmit",value:function(e){"none"===ctPublic.data__cookies_type&&e.target&&e.target.action&&-1!==e.target.action.toString().indexOf("mailpoet_subscription_form")&&(window.XMLHttpRequest.prototype.send=function(e){var t,n;+ctPublic.bot_detector_enabled?(t=(new ApbctHandler).toolGetEventToken())&&(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+("data%5Bct_bot_detector_event_token%5D="+t+"&")+e)):(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+e)),setTimeout(function(){window.XMLHttpRequest.prototype.send=defaultSend},0)})}},{key:"setVisibleFieldsCookie",value:function(e,t){var n="object"===_typeof(e)&&null!==e?e:{};if("native"===ctPublic.data__cookies_type)for(var o in n){if(10{function p(){_classCallCheck(this,p)}return _createClass(p,[{key:"excludeForm",value:function(e){return!!this.checkHiddenFieldsExclusions(e,"visible_fields")||!!(e.querySelector('input[name="wspsc_add_cart_submit"]')||e.querySelector('input[name="option"][value="com_vikrentcar"]')||e.querySelector('input[name="option"][value="com_vikbooking"]'))||void 0!==e.elements.apbct_visible_fields&&0{var n=_asyncToGenerator(_regenerator().m(function e(t,n){var o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(+ctPublic.settings__forms__check_external){e.n=1;break}return e.a(2,!1);case 1:o=_createForOfIteratorHelper(r),e.p=2,o.s();case 3:if((a=o.n()).done)e.n=6;else{if((a=a.value).matches(t,n))return a=a.getForm(),e.n=4,i(a);e.n=5}break;case 4:if(e.v)return e.a(2,!0);e.n=5;break;case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,a=e.v,o.e(a);case 8:return e.p=8,o.f(),e.f(8);case 9:return e.a(2,!1)}},e,null,[[2,7,8,9]])}));return function(e,t){return n.apply(this,arguments)}})(),r=[{name:"bitrix24",matches:function(e,t){return document.querySelector(".b24-form")&&e.includes("bitrix/services/main/ajax.php?action=crm.site.form.fill")&&t[1].body instanceof FormData},getForm:function(){return document.querySelector(".b24-form form")}},{name:"sender",matches:function(e,t){return e.includes("stats.sender.net/forms")&&"string"==typeof t[1].body},getForm:function(){for(var e=document.querySelectorAll("iframe"),t=0;t{var t=_asyncToGenerator(_regenerator().m(function e(t){var n,o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}return e.a(2,!1);case 1:return n=c(t),b=!0,e.p=2,e.n=3,new Promise(function(e,t){apbct_public_sendAJAX(n,{async:!0,callback:e,onErrorCallback:t})});case 3:return o=e.v,(a=void 0!==o.apbct&&+o.apbct.blocked||void 0!==o.data&&void 0!==o.data.message)&&(new ApbctShowForbidden).parseBlockMessage(o),e.a(2,a);case 4:return e.p=4,e.a(2,!1);case 5:return e.p=5,b=!1,e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(e){return t.apply(this,arguments)}})(),c=function(e){var t,n={action:"cleantalk_force_ajax_check"},o=_createForOfIteratorHelper(e.elements);try{for(o.s();!(t=o.n()).done;){var a=t.value;a.name&&(n[a.name]=a.value)}}catch(e){o.e(e)}finally{o.f()}return+ctPublic.bot_detector_enabled?n.ct_bot_detector_event_token=apbctLocalStorage.get("bot_detector_event_token"):n.ct_no_cookie_hidden_field=getNoCookieData(),n};window.fetch=_asyncToGenerator(_regenerator().m(function e(){var t,n,o,a,r,i,c,l,s,u,d,p=arguments;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:for(t=p.length,n=new Array(t),o=0;o!(!t||"string"!=typeof t)&&["google.com/recaptcha","gstatic.com/recaptcha","recaptcha.google.com","recaptcha.net","www.google.com/recaptcha","apis.google.com","paypal.com","api.paypal.com","www.paypal.com","js.stripe.com","api.stripe.com","checkout.stripe.com","api.doboard.com"].some(function(e){return t.includes(e)}))(a="string"==typeof n[0]?n[0]:(null==(a=n[0])?void 0:a.url)||""))return e.a(2,y.apply(this,n));e.n=2;break;case 2:if(n&&n[0]&&n[1]&&n[1].body){e.n=3;break}return e.a(2,y.apply(this,n));case 3:return e.n=4,_.processFetch(n);case 4:if(!0===e.v)return e.a(2,Promise.reject(new Error("Forbidden")));e.n=5;break;case 5:if(0{try{return n[0].includes(new URL(ctPublicFunctions._rest_url).pathname+"metform/")}catch(e){}})()))try{n[1].body=m(n[1].body,f(+ctPublic.bot_detector_enabled))}catch(e){}if(0{var t=e.value;"undefined"!=typeof ctPublic&&1==+ctPublic.settings__forms__search_test&&null!==t.getAttribute("apbct-form-sign")&&"native_search"===t.getAttribute("apbct-form-sign")&&(t.apbctSearchPrevOnsubmit=t.onsubmit,t.onsubmit=function(e){return n.searchFormHandler(e,t)})})()}catch(e){t.e(e)}finally{t.f()}}},{key:"searchFormHandler",value:function(e,t){try{var n,o,a,r=t.querySelector('[name*="apbct__email_id__"]'),i=null,c=(null!==r&&null!==r.value&&(i=r.value),getCleanTalkStorageDataArray()),l=apbctLocalStorage.get("bot_detector_event_token");null===c&&null===r&&null===l||(e.preventDefault(),n=function(){null!==r&&r.parentNode.removeChild(r),"function"==typeof t.apbctSearchPrevOnsubmit?t.apbctSearchPrevOnsubmit():HTMLFormElement.prototype.submit.call(t)},o=c,null!==i&&(o.apbct_search_form__honeypot_value=i),o.ct_bot_detector_event_token=l,"string"==typeof o.apbct_pixel_url&&-1!==o.apbct_pixel_url.indexOf("%3A")&&(o.apbct_pixel_url=decodeURIComponent(o.apbct_pixel_url)),void 0!==(a=JSON.stringify(o))&&0!==a.length?ctSetAlternativeCookie(a,{callback:n,onErrorCallback:n,forceAltCookies:!0}):n())}catch(e){console.warn("APBCT search form onsubmit handler error. "+e)}}},{key:"toolForAntiCrawlerCheckDuringBotDetector",value:function(){var e=setInterval(function(){localStorage.bot_detector_event_token&&(ctSetCookie("apbct_bot_detector_exist","1","3600"),clearInterval(e))},500)}},{key:"toolGetEventToken",value:function(){var t=localStorage.getItem("bot_detector_event_token");try{t=JSON.parse(t)}catch(e){t=!1}return!(null===t||!1===t||!t.hasOwnProperty("value")||""===t.value)&&t.value}}])})(),ApbctShowForbidden=(()=>_createClass(function e(){_classCallCheck(this,e)},[{key:"prepareBlockForAjaxForms",value:function(){var o=function(e){if(e.responseText&&-1!==e.responseText.indexOf('"apbct')&&-1===e.responseText.indexOf("DOCTYPE"))try{this.parseBlockMessage(JSON.parse(e.responseText))}catch(e){console.log(e.toString())}}.bind(this);"undefined"!=typeof jQuery?"function"!=typeof jQuery(document).ajaxComplete()?jQuery(document).on("ajaxComplete",function(e,t,n){o(t)}):jQuery(document).ajaxComplete(function(e,t,n){o(t)}):"undefined"!=typeof XMLHttpRequest&&document.addEventListener("readystatechange",function(e){4===e.target.readyState&&o(e.target)})}},{key:"parseBlockMessage",value:function(e){var t,n="";if((void 0!==e.apbct&&(e=e.apbct).blocked&&(n=e.comment),n=void 0!==e.data&&void 0!==(e=e.data).message?e.message:n)&&(document.dispatchEvent(new CustomEvent("apbctAjaxBockAlert",{bubbles:!0,detail:{message:n}})),cleantalkModal.loaded=n,cleantalkModal.open(),1==+e.stop_script&&(window.stop(),e.integration&&"NEXForms"===e.integration&&((t=document.querySelector("form.submit-nex-form button.nex-submit"))&&(t.disabled=!0,t.style.opacity="0.5",t.style.cursor="not-allowed",t.style.pointerEvents="none",t.style.backgroundColor="#ccc",t.style.color="#fff"),t=document.querySelector("div.nex_success_message"))&&(t.style.display="none"),e.integration)&&"ElfsightForm"===e.integration)){var o=[document];try{document.querySelectorAll("iframe").forEach(function(e){try{e.contentDocument&&o.push(e.contentDocument)}catch(e){}})}catch(e){}for(var a=0,r=o;a_createClass(function e(){_classCallCheck(this,e)},[{key:"extract",value:function(e){if(e&&"string"==typeof e){try{e=decodeURIComponent(e)}catch(e){return!1}var t=document.querySelectorAll("form"),n=this.getIdFromAjax(e);if(n){var o,a=_createForOfIteratorHelper(t);try{for(a.s();!(o=a.n()).done;){var r=o.value,i=this.findParentContainer(r);if(i){var c=this.getIdFromHTML(i);if(c===n){var l=i.querySelector("input[id^=apbct_visible_fields_]");if(null!=l&&l.value)return l.value}}}}catch(e){a.e(e)}finally{a.f()}}}return!1}},{key:"getIdFromAjax",value:function(e){return console.warn("getIdFromAjax must be implemented by child class"),null}},{key:"findParentContainer",value:function(e){return console.warn("findParentContainer must be implemented by child class"),null}},{key:"getIdFromHTML",value:function(e){return console.warn("getIdFromHTML must be implemented by child class"),null}}],[{key:"createExtractor",value:function(e){switch(e){case"action=nf_ajax_submit":return new ApbctNinjaFormsVisibleFields;case"action=mailpoet":return new ApbctMailpoetVisibleFields;default:return null}}}]))(),ApbctNinjaFormsVisibleFields=(()=>{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/"id"\s*:\s*"?(\d+)"/,/form_id\s*[:\s]*"?(\d+)"/,/nf-form-(\d+)/,/"id":(\d+)/];t{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/form_id\s*[:\s]*"?(\d+)"/,/data\[form_id\]=(\d+)/,/form_id=(\d+)/];t{function o(){_classCallCheck(this,o)}return _createClass(o,null,[{key:"getFrontendDataLog",value:function(){var e=("undefined"!=typeof ctPublicFunctions&&ctPublicFunctions.cookiePrefix?ctPublicFunctions.cookiePrefix:"")+o.LOG_KEY,t=o.LOG_KEY;if("undefined"!=typeof apbctLocalStorage&&apbctLocalStorage.get){var n=apbctLocalStorage.get(e)||apbctLocalStorage.get(t)||null;if(n&&"string"==typeof n)try{return JSON.parse(n)}catch(e){return""}return n}n=(n=localStorage.getItem(e))||localStorage.getItem(t)||null;try{return"string"==typeof n?JSON.parse(n):n}catch(e){return""}}},{key:"asDTO",value:function(){return{botd_logic_loaded:o.botdLogicLoaded,botd_wrapper_loaded:o.botdWrapperLoaded,frontend_data_log:"",transport_enabled:1}}},{key:"detectScripts",value:function(){if(o.botdWrapperLoaded&&o.botdLogicLoaded)return!0;for(var e=document.getElementsByTagName("script"),t=0;t .comment-body *[class*="comment-author"]',document.querySelector(".apbct-trp .comment-author .comment-author-link")&&(e='.apbct-trp *[class*="comment-author-link"]'),0!==(e=document.querySelectorAll(e+',.apbct-trp > .wp-block-group *[class*="comment-author"],.apbct-trp *[class*="review__author"],.apbct-trp td[class*="column-author"] > strong')).length)&&(e.forEach(function(e,t){var n,o,a,r,i,c,l,s,u;e.className.indexOf("review")<0&&"undefined"==typeof pagenow&&e.parentElement.className.indexOf("group")<0&&"DIV"!=e.tagName||e.querySelector(".comment-metadata")||((n=document.createElement("div")).setAttribute("class","apbct-real-user-badge"),(o=document.createElement("img")).setAttribute("src",d.imgPersonUrl),o.setAttribute("class","apbct-real-user-popup-img"),(a=document.createElement("div")).setAttribute("class","apbct-real-user-popup"),(c=document.createElement("strong")).append(d.phrases.trpHeading),(r=document.createElement("div")).setAttribute("class","apbct-real-user-popup-content_row"),(i=document.createElement("div")).append(" "),i.append(c),i.append(d.phrases.trpContent1),(c=document.createElement("div")).style.display="flex",c.style.gap="5px",(l=document.createElement("div")).append(d.phrases.trpContent2),c.append(l),p&&(l=document.createElement("div"),(s=document.createElement("a")).setAttribute("href",d.trpContentLink),s.setAttribute("target","_blank"),(u=document.createElement("img")).setAttribute("src",ctAdminCommon.new_window_gif),u.setAttribute("alt","New window"),u.setAttribute("style","padding-top:3px"),s.append(u),l.append(s),c.append(l)),r.append(i,c),a.append(r),n.append(o),e.append(n),e.append(a))}),document.querySelectorAll(".apbct-real-user-badge").forEach(function(o){var a=void 0,e=(t.body.addEventListener("click",function(e){-1==e.target.className.indexOf("apbct-real-user")&&-1==e.target.parentElement.className.indexOf("apbct-real-user")&&closeAllPopupTRP()}),o.addEventListener("click",function(){var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.toggle("visible")}),o.addEventListener("mouseenter",function(){closeAllPopupTRP();var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.add("visible")}),o.addEventListener("mouseleave",function(){var t=this;a=setTimeout(function(){var e=t.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.nextElementSibling);e.addEventListener("mouseenter",function(){clearTimeout(a),e.classList.add("visible")}),e.addEventListener("mouseleave",function(){a=setTimeout(function(){e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.addEventListener("touchend",function(){var n=this;a=setTimeout(function(){var e=n.nextElementSibling,t=window.getSelection();e&&t&&e.classList.contains("apbct-real-user-popup")&&0===t.toString().length?e.classList.remove("visible"):(clearTimeout(a),document.addEventListener("selectionchange",function e(){var t=window.getSelection();t&&0===t.toString().length&&(a=setTimeout(function(){var e=o.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},3e3),document.removeEventListener("selectionchange",e))}))},3e3)})})))}); diff --git a/js/apbct-public-bundle_ext-protection_gathering.min.js b/js/apbct-public-bundle_ext-protection_gathering.min.js index e7523b73a..426347069 100644 --- a/js/apbct-public-bundle_ext-protection_gathering.min.js +++ b/js/apbct-public-bundle_ext-protection_gathering.min.js @@ -1 +1 @@ -function ownKeys(t,e){var n,o=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,n)),o}function _objectSpread(t){for(var e=1;et||c=e.length?{done:!0}:{done:!1,value:e[c++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var n;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n{var n,e;if(c.data.forEach(function(e){e.encoded_email===a[t].dataset.originalString&&(n=e)}),!1===n.is_allowed)return{v:void 0};if(void 0===a[t].href||0!==a[t].href.indexOf("mailto:")&&0!==a[t].href.indexOf("tel:"))a[t].classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a[t])},2e3);else{if(0===a[t].href.indexOf("mailto:"))e="mailto:";else{if(0!==a[t].href.indexOf("tel:"))return 0;e="tel:"}var o=a[t].href.replace(e,"");ctReplaceInTextNodes(a[t],o,ctHtmlToText(n.decoded_email)),a[t].href=e+n.decoded_email,a[t].querySelectorAll("span.apbct-email-encoder").forEach(function(t){var n="";c.data.forEach(function(e){e.encoded_email===t.dataset.originalString&&(n=e.decoded_email)}),t.textContent=ctHtmlToText(n)})}a[t].removeEventListener("click",ctFillDecodedEmailHandler)})(t))&&e)return e.v}else{var n=c.data[0];a.classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a)},2e3),a.removeEventListener("click",ctFillDecodedEmailHandler)}}function ctReplaceInTextNodes(e,t,n){if(t){e.normalize();for(var o,a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);o=a.nextNode();)if(-1!==o.nodeValue.indexOf(t))return void(o.nodeValue=o.nodeValue.replace(t,function(){return n}))}}function ctHtmlToText(e){return e?(new DOMParser).parseFromString(String(e),"text/html").documentElement.textContent:""}function ctProcessDecodedDataResult(e,t){t.setAttribute("title",""),t.removeAttribute("style"),ctFillDecodedEmail(t,e.decoded_email)}function ctFillDecodedEmail(e,t){e.innerHTML=e.innerHTML.replace(/.+?(
)/,t+"$1")}var ctEmailDecoderIsInitialized=!1,cleantalkModal=(document.addEventListener("DOMContentLoaded",function(){if(!ctEmailDecoderIsInitialized){ctEmailDecoderIsInitialized=!0;var e=document.querySelectorAll("[data-original-string]");if("undefined"!=typeof ctPublic&&(ctPublic.encodedEmailNodes=e),e.length)for(var t=0;t$1')):(c.innerHTML="Loading...",t&&this.load(t)),c.setAttribute("id","cleantalk-modal-content"),n.append(c),this.opened=!0},confirm:function(e){var t,n=1_createClass(function e(t){_classCallCheck(this,e),_defineProperty(this,"ajax_parameters",{}),_defineProperty(this,"restParameters",{}),_defineProperty(this,"selector",null),_defineProperty(this,"elements",[]),_defineProperty(this,"eventCallback",void 0),_defineProperty(this,"eventSelector",void 0),_defineProperty(this,"event",void 0),this.select(t)},[{key:"select",value:function(e){return e instanceof HTMLCollection?(this.selector=null,this.elements=[],this.elements=Array.prototype.slice.call(e)):"object"===_typeof(e)?(this.selector=null,this.elements=[],this.elements[0]=e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect(),this}},{key:"addElement",value:function(e){"object"===_typeof(e)?this.elements.push(e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect()}},{key:"push",value:function(e){this.elements.push(e)}},{key:"reduce",value:function(){this.elements=this.elements.slice(0,-1)}},{key:"deselect",value:function(){this.elements=[]}},{key:"css",value:function(e,t){if(t=t||!1,"object"===_typeof(e)){for(var n in e)if(Object.hasOwn(e,n))for(var o=n.replace(/([-_][a-z])/g,function(e){return e.toUpperCase().replace("-","").replace("_","")}),a=0;a(e=document.createElement(e).constructor,!Boolean(~[HTMLElement,HTMLUnknownElement].indexOf(e))))(t)?n||e.tagName.toLowerCase()===t.toLowerCase():t.match(/^[a-z]/)?n||Boolean(e[t]):n||(null!==this.selector?null!==document.querySelector(this.selector+t):this.isWithoutSelector(e,t)):n}},{key:"isWithoutSelector",value:function(e,t){var n,o=!1,a=_createForOfIteratorHelper(document.querySelectorAll(t));try{for(a.s();!(n=a.n()).done;)o=o||e===n.value}catch(e){a.e(e)}finally{a.f()}return o}},{key:"filter",value:function(e){this.selector=null;for(var t=this.elements.length-1;0<=t;t--)this.isElem(this.elements[t],e)||this.elements.splice(Number(t),1);return this}},{key:"parent",value:function(e){return this.select(this.elements[0].parentElement),void 0===e||this.is(e)||this.deselect(),this}},{key:"parents",value:function(e){for(this.select(this.elements[0]);null!==this.elements[this.elements.length-1].parentElement;)this.push(this.elements[this.elements.length-1].parentElement);return this.elements.splice(0,1),void 0!==e&&this.filter(e),this}},{key:"children",value:function(e){return this.select(this.elements[0].children),void 0!==e&&this.filter(e),this}},{key:"siblings",value:function(e){var t=this.elements[0];return this.parent(),this.children(e),this.elements.splice(this.elements.indexOf(t),1),this}},{key:"remove",value:function(){var e,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(e=t.n()).done;)e.value.remove()}catch(e){t.e(e)}finally{t.f()}}},{key:"after",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.after(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"append",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.append(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"fadeIn",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity+(new Date-n)/o,n=+new Date,+t.style.opacity<1&&(window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16))}var t=a.value,n=(t.style.opacity=0,t.style.display="block",+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}},{key:"fadeOut",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity-(new Date-n)/o,n=+new Date,0<+t.style.opacity?window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16):t.style.display="none"}var t=a.value,n=(t.style.opacity=1,+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}}]))());function selectActualNonce(){var e="";return ctPublicFunctions.hasOwnProperty("_fresh_nonce")&&"string"==typeof ctPublicFunctions._fresh_nonce&&0{function o(e){for(var t in _classCallCheck(this,o),_defineProperty(this,"xhr",new XMLHttpRequest),_defineProperty(this,"method","POST"),_defineProperty(this,"url",""),_defineProperty(this,"async",!0),_defineProperty(this,"user",null),_defineProperty(this,"password",null),_defineProperty(this,"data",{}),_defineProperty(this,"button",null),_defineProperty(this,"spinner",null),_defineProperty(this,"progressbar",null),_defineProperty(this,"context",this),_defineProperty(this,"callback",null),_defineProperty(this,"onErrorCallback",null),_defineProperty(this,"responseType","json"),_defineProperty(this,"headers",{}),_defineProperty(this,"timeout",15e3),_defineProperty(this,"methods_to_convert_data_to_URL",["GET","HEAD"]),_defineProperty(this,"body",null),_defineProperty(this,"http_code",0),_defineProperty(this,"status_text",""),e)void 0!==this[t]&&(this[t]=e[t]);if(this.prepare(),Object.keys(this.data).length&&(this.deleteDoubleJSONEncoding(this.data),this.convertData()),!this.url)return console.log("%cXHR%c not URL provided","color: red; font-weight: bold;","color: grey; font-weight: normal;"),!1;this.xhr.open(this.method,this.url,this.async,this.user,this.password),this.setHeaders(),this.xhr.responseType=this.responseType,this.xhr.timeout=this.timeout,this.xhr.onreadystatechange=function(){this.isWpNonceError()?this.getFreshNonceAndRerunXHR(e):this.onReadyStateChange()}.bind(this),this.xhr.onload=function(){this.onLoad()}.bind(this),this.xhr.onprogress=function(e){this.onProgress(e)}.bind(this),this.xhr.onerror=function(){this.onError()}.bind(this),this.xhr.ontimeout=function(){this.onTimeout()}.bind(this),this.xhr.send(this.body)}return _createClass(o,[{key:"prepare",value:function(){this.button&&(this.button.setAttribute("disabled","disabled"),this.button.style.cursor="not-allowed"),this.spinner&&(this.spinner.style.display="inline")}},{key:"complete",value:function(){this.http_code=this.xhr.status,this.status_text=this.xhr.statusText,this.button&&(this.button.removeAttribute("disabled"),this.button.style.cursor="auto"),this.spinner&&(this.spinner.style.display="none"),this.progressbar&&this.progressbar.fadeOut("slow")}},{key:"onReadyStateChange",value:function(){null!==this.on_ready_state_change&&"function"==typeof this.on_ready_state_change&&this.on_ready_state_change()}},{key:"onProgress",value:function(e){null!==this.on_progress&&"function"==typeof this.on_progress&&this.on_progress()}},{key:"onError",value:function(){console.log("error"),this.complete(),this.error(this.http_code,this.status_text),null!==this.onErrorCallback&&"function"==typeof this.onErrorCallback&&this.onErrorCallback(this.status_text)}},{key:"onTimeout",value:function(){this.complete(),this.error(0,"timeout"),null!==this.onErrorCallback&&"function"==typeof this.onErrorCallback&&this.onErrorCallback("Timeout")}},{key:"onLoad",value:function(){if(this.complete(),"json"===this.responseType){if(null===this.xhr.response)return this.error(this.http_code,this.status_text,"No response"),!1;if(void 0!==this.xhr.response.error)return this.error(this.http_code,this.status_text,this.xhr.response.error),!1}null!==this.callback&&"function"==typeof this.callback&&this.callback.call(this.context,this.xhr.response,this.data)}},{key:"isWpNonceError",value:function(){var e=!1,t=!1;return 4==this.xhr.readyState&&(e="object"===_typeof(this.xhr.response)&&null!==this.xhr.response&&this.xhr.response.hasOwnProperty("data")&&this.xhr.response.data.hasOwnProperty("status")&&403===this.xhr.response.data.status,t="-1"===this.xhr.response&&403===this.xhr.status),e||t}},{key:"getFreshNonceAndRerunXHR",value:function(e){var t,n="";e.hasOwnProperty("headers")&&e.headers.hasOwnProperty("X-WP-Nonce")&&(n=e.headers["X-WP-Nonce"]),""!==(n=e.hasOwnProperty("data")&&e.data.hasOwnProperty("_ajax_nonce")?e.data._ajax_nonce:n)&&((t={method:"POST"}).data={spbc_remote_call_action:"get_fresh_wpnonce",plugin_name:"antispam",nonce_prev:n,initial_request_params:e},t.notJson=!0,t.url=ctPublicFunctions._ajax_url,t.callback=function(){for(var e=arguments.length,t=new Array(e),n=0;n{function o(){for(var e=arguments.length,t=new Array(e),n=0;n{function a(){for(var e=arguments.length,t=new Array(e),n=0;n{return _createClass(function e(){_classCallCheck(this,e),this.config=ApbctFetchProxyConfig},[{key:"findMatchingConfig",value:function(e){for(var t="string"==typeof e?e:null!=e&&"string"==typeof e.href?e.href:"",n=0,o=Object.entries(this.config);nMath.floor((new Date).getTime()/1e3)},isSet:function(e){return null!==localStorage.getItem(e)},delete:function(e){localStorage.removeItem(e)},getCleanTalkData:function(){for(var e={},t=0;t_createClass(function e(){_classCallCheck(this,e)},[{key:"attachEventTokenToMultipageGravityForms",value:function(){document.addEventListener("gform_page_loaded",function(){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||"function"!=typeof setEventTokenField||"function"!=typeof botDetectorLocalStorage||setEventTokenField(botDetectorLocalStorage.get("bot_detector_event_token"))})}},{key:"attachEventTokenToWoocommerceGetRequestAddToCart",value:function(){ctPublic.wc_ajax_add_to_cart||document.querySelectorAll("a.add_to_cart_button:not(.product_type_variable):not(.wc-interactive)").forEach(function(o){o.addEventListener("click",function(e){var t=o.getAttribute("href"),n=apbctLocalStorage.get("bot_detector_event_token");n&&(-1===t.indexOf("?")?t+="?":t+="&",o.setAttribute("href",t+="ct_bot_detector_event_token="+n))})})}},{key:"restartBotDetectorEventTokenAttach",value:function(){var e,t=0_createClass(function e(){_classCallCheck(this,e)},[{key:"attachHiddenFieldsToForms",value:function(e){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||+ctPublic.bot_detector_enabled&&!e||(ctNoCookieAttachHiddenFieldsToForms(),document.addEventListener("gform_page_loaded",ctNoCookieAttachHiddenFieldsToForms))}},{key:"attachVisibleFieldsToForm",value:function(e,t){var n=document.createElement("input"),t=(n.setAttribute("type","hidden"),n.setAttribute("id","apbct_visible_fields_"+t),n.setAttribute("name","apbct_visible_fields"),{});t[0]=this.collectVisibleFields(e),n.value=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),e.append(n)}},{key:"attachVisibleFieldsDuringSubmit",value:function(e,t){"native"!==ctPublic.data__cookies_type&&void 0!==e.target.ctFormIndex&&this.setVisibleFieldsCookie(this.collectVisibleFields(t),e.target.ctFormIndex)}},{key:"constructNoCookieHiddenField",value:function(e){var t="hidden",e=("submit"===e&&(t="submit"),""),n=getCleanTalkStorageDataArray(),n=JSON.stringify(n);return n="_ct_no_cookie_data_"+btoa(unescape(encodeURIComponent(n))),(e=document.createElement("input")).setAttribute("name","ct_no_cookie_hidden_field"),e.setAttribute("value",n),e.setAttribute("type",t),e.classList.add("apbct_special_field"),e.classList.add("ct_no_cookie_hidden_field"),e}},{key:"attachNoCookieDuringSubmit",value:function(e){"none"===ctPublic.data__cookies_type&&e.target&&e.target.action&&-1!==e.target.action.toString().indexOf("mailpoet_subscription_form")&&(window.XMLHttpRequest.prototype.send=function(e){var t,n;+ctPublic.bot_detector_enabled?(t=(new ApbctHandler).toolGetEventToken())&&(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+("data%5Bct_bot_detector_event_token%5D="+t+"&")+e)):(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+e)),setTimeout(function(){window.XMLHttpRequest.prototype.send=defaultSend},0)})}},{key:"setVisibleFieldsCookie",value:function(e,t){var n="object"===_typeof(e)&&null!==e?e:{};if("native"===ctPublic.data__cookies_type)for(var o in n){if(10{function p(){_classCallCheck(this,p)}return _createClass(p,[{key:"excludeForm",value:function(e){return!!this.checkHiddenFieldsExclusions(e,"visible_fields")||!!(e.querySelector('input[name="wspsc_add_cart_submit"]')||e.querySelector('input[name="option"][value="com_vikrentcar"]')||e.querySelector('input[name="option"][value="com_vikbooking"]'))||void 0!==e.elements.apbct_visible_fields&&0{var n=_asyncToGenerator(_regenerator().m(function e(t,n){var o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(+ctPublic.settings__forms__check_external){e.n=1;break}return e.a(2,!1);case 1:o=_createForOfIteratorHelper(c),e.p=2,o.s();case 3:if((a=o.n()).done)e.n=6;else{if((a=a.value).matches(t,n))return a=a.getForm(),e.n=4,r(a);e.n=5}break;case 4:if(e.v)return e.a(2,!0);e.n=5;break;case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,a=e.v,o.e(a);case 8:return e.p=8,o.f(),e.f(8);case 9:return e.a(2,!1)}},e,null,[[2,7,8,9]])}));return function(e,t){return n.apply(this,arguments)}})(),c=[{name:"bitrix24",matches:function(e,t){return document.querySelector(".b24-form")&&e.includes("bitrix/services/main/ajax.php?action=crm.site.form.fill")&&t[1].body instanceof FormData},getForm:function(){return document.querySelector(".b24-form form")}},{name:"sender",matches:function(e,t){return e.includes("stats.sender.net/forms")&&"string"==typeof t[1].body},getForm:function(){for(var e=document.querySelectorAll("iframe"),t=0;t{var t=_asyncToGenerator(_regenerator().m(function e(t){var n,o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}return e.a(2,!1);case 1:return n=i(t),b=!0,e.p=2,e.n=3,new Promise(function(e,t){apbct_public_sendAJAX(n,{async:!0,callback:e,onErrorCallback:t})});case 3:return o=e.v,(a=void 0!==o.apbct&&+o.apbct.blocked||void 0!==o.data&&void 0!==o.data.message)&&(new ApbctShowForbidden).parseBlockMessage(o),e.a(2,a);case 4:return e.p=4,e.a(2,!1);case 5:return e.p=5,b=!1,e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(e){return t.apply(this,arguments)}})(),i=function(e){var t,n={action:"cleantalk_force_ajax_check"},o=_createForOfIteratorHelper(e.elements);try{for(o.s();!(t=o.n()).done;){var a=t.value;a.name&&(n[a.name]=a.value)}}catch(e){o.e(e)}finally{o.f()}return+ctPublic.bot_detector_enabled?n.ct_bot_detector_event_token=apbctLocalStorage.get("bot_detector_event_token"):n.ct_no_cookie_hidden_field=getNoCookieData(),n};window.fetch=_asyncToGenerator(_regenerator().m(function e(){var t,n,o,a,c,r,i,l,s,u,d,p=arguments;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:for(t=p.length,n=new Array(t),o=0;o!(!t||"string"!=typeof t)&&["google.com/recaptcha","gstatic.com/recaptcha","recaptcha.google.com","recaptcha.net","www.google.com/recaptcha","apis.google.com","paypal.com","api.paypal.com","www.paypal.com","js.stripe.com","api.stripe.com","checkout.stripe.com","api.doboard.com"].some(function(e){return t.includes(e)}))(a="string"==typeof n[0]?n[0]:(null==(a=n[0])?void 0:a.url)||""))return e.a(2,h.apply(this,n));e.n=2;break;case 2:if(n&&n[0]&&n[1]&&n[1].body){e.n=3;break}return e.a(2,h.apply(this,n));case 3:return e.n=4,m.processFetch(n);case 4:if(!0===e.v)return e.a(2,Promise.reject(new Error("Forbidden")));e.n=5;break;case 5:if(0{try{return n[0].includes(new URL(ctPublicFunctions._rest_url).pathname+"metform/")}catch(e){}})()))try{n[1].body=_(n[1].body,f(+ctPublic.bot_detector_enabled))}catch(e){}if(0{var t=e.value;"undefined"!=typeof ctPublic&&1==+ctPublic.settings__forms__search_test&&null!==t.getAttribute("apbct-form-sign")&&"native_search"===t.getAttribute("apbct-form-sign")&&(t.apbctSearchPrevOnsubmit=t.onsubmit,t.onsubmit=function(e){return n.searchFormHandler(e,t)})})()}catch(e){t.e(e)}finally{t.f()}}},{key:"searchFormHandler",value:function(e,t){try{var n,o,a,c=t.querySelector('[name*="apbct__email_id__"]'),r=null,i=(null!==c&&null!==c.value&&(r=c.value),getCleanTalkStorageDataArray()),l=apbctLocalStorage.get("bot_detector_event_token");null===i&&null===c&&null===l||(e.preventDefault(),n=function(){null!==c&&c.parentNode.removeChild(c),"function"==typeof t.apbctSearchPrevOnsubmit?t.apbctSearchPrevOnsubmit():HTMLFormElement.prototype.submit.call(t)},o=i,null!==r&&(o.apbct_search_form__honeypot_value=r),o.ct_bot_detector_event_token=l,"string"==typeof o.apbct_pixel_url&&-1!==o.apbct_pixel_url.indexOf("%3A")&&(o.apbct_pixel_url=decodeURIComponent(o.apbct_pixel_url)),void 0!==(a=JSON.stringify(o))&&0!==a.length?ctSetAlternativeCookie(a,{callback:n,onErrorCallback:n,forceAltCookies:!0}):n())}catch(e){console.warn("APBCT search form onsubmit handler error. "+e)}}},{key:"toolForAntiCrawlerCheckDuringBotDetector",value:function(){var e=setInterval(function(){localStorage.bot_detector_event_token&&(ctSetCookie("apbct_bot_detector_exist","1","3600"),clearInterval(e))},500)}},{key:"toolGetEventToken",value:function(){var t=localStorage.getItem("bot_detector_event_token");try{t=JSON.parse(t)}catch(e){t=!1}return!(null===t||!1===t||!t.hasOwnProperty("value")||""===t.value)&&t.value}}])})(),ApbctShowForbidden=(()=>_createClass(function e(){_classCallCheck(this,e)},[{key:"prepareBlockForAjaxForms",value:function(){var o=function(e){if(e.responseText&&-1!==e.responseText.indexOf('"apbct')&&-1===e.responseText.indexOf("DOCTYPE"))try{this.parseBlockMessage(JSON.parse(e.responseText))}catch(e){console.log(e.toString())}}.bind(this);"undefined"!=typeof jQuery?"function"!=typeof jQuery(document).ajaxComplete()?jQuery(document).on("ajaxComplete",function(e,t,n){o(t)}):jQuery(document).ajaxComplete(function(e,t,n){o(t)}):"undefined"!=typeof XMLHttpRequest&&document.addEventListener("readystatechange",function(e){4===e.target.readyState&&o(e.target)})}},{key:"parseBlockMessage",value:function(e){var t,n="";if((void 0!==e.apbct&&(e=e.apbct).blocked&&(n=e.comment),n=void 0!==e.data&&void 0!==(e=e.data).message?e.message:n)&&(document.dispatchEvent(new CustomEvent("apbctAjaxBockAlert",{bubbles:!0,detail:{message:n}})),cleantalkModal.loaded=n,cleantalkModal.open(),1==+e.stop_script&&(window.stop(),e.integration&&"NEXForms"===e.integration&&((t=document.querySelector("form.submit-nex-form button.nex-submit"))&&(t.disabled=!0,t.style.opacity="0.5",t.style.cursor="not-allowed",t.style.pointerEvents="none",t.style.backgroundColor="#ccc",t.style.color="#fff"),t=document.querySelector("div.nex_success_message"))&&(t.style.display="none"),e.integration)&&"ElfsightForm"===e.integration)){var o=[document];try{document.querySelectorAll("iframe").forEach(function(e){try{e.contentDocument&&o.push(e.contentDocument)}catch(e){}})}catch(e){}for(var a=0,c=o;a_createClass(function e(){_classCallCheck(this,e)},[{key:"extract",value:function(e){if(e&&"string"==typeof e){try{e=decodeURIComponent(e)}catch(e){return!1}var t=document.querySelectorAll("form"),n=this.getIdFromAjax(e);if(n){var o,a=_createForOfIteratorHelper(t);try{for(a.s();!(o=a.n()).done;){var c=o.value,r=this.findParentContainer(c);if(r){var i=this.getIdFromHTML(r);if(i===n){var l=r.querySelector("input[id^=apbct_visible_fields_]");if(null!=l&&l.value)return l.value}}}}catch(e){a.e(e)}finally{a.f()}}}return!1}},{key:"getIdFromAjax",value:function(e){return console.warn("getIdFromAjax must be implemented by child class"),null}},{key:"findParentContainer",value:function(e){return console.warn("findParentContainer must be implemented by child class"),null}},{key:"getIdFromHTML",value:function(e){return console.warn("getIdFromHTML must be implemented by child class"),null}}],[{key:"createExtractor",value:function(e){switch(e){case"action=nf_ajax_submit":return new ApbctNinjaFormsVisibleFields;case"action=mailpoet":return new ApbctMailpoetVisibleFields;default:return null}}}]))(),ApbctNinjaFormsVisibleFields=(()=>{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/"id"\s*:\s*"?(\d+)"/,/form_id\s*[:\s]*"?(\d+)"/,/nf-form-(\d+)/,/"id":(\d+)/];t{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/form_id\s*[:\s]*"?(\d+)"/,/data\[form_id\]=(\d+)/,/form_id=(\d+)/];t_createClass(function e(){_classCallCheck(this,e)},[{key:"setSessionId",value:function(){var e;apbctSessionStorage.isSet("apbct_session_id")?apbctLocalStorage.set("apbct_page_hits",Number(apbctLocalStorage.get("apbct_page_hits"))+1):(e=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(2,10),apbctSessionStorage.set("apbct_session_id",e,!1),apbctLocalStorage.set("apbct_page_hits",1),document.referrer&&new URL(document.referrer).host!==location.host&&apbctSessionStorage.set("apbct_site_referer",document.referrer,!1))}},{key:"writeReferrersToSessionStorage",value:function(){var e=apbctSessionStorage.get("apbct_session_current_page");!1!==e&&document.location.href!==e&&apbctSessionStorage.set("apbct_prev_referer",e,!1),apbctSessionStorage.set("apbct_session_current_page",document.location.href,!1)}},{key:"setCookiesType",value:function(){var e=apbctLocalStorage.get("ct_cookies_type");e&&e===ctPublic.data__cookies_type||(apbctLocalStorage.set("ct_cookies_type",ctPublic.data__cookies_type),apbctLocalStorage.delete("ct_mouse_moved"),apbctLocalStorage.delete("ct_has_scrolled"))}},{key:"startFieldsListening",value:function(){if(!apbctLocalStorage.isSet("ct_has_key_up")&&!apbctLocalStorage.get("ct_has_key_up")||!apbctLocalStorage.isSet("ct_has_input_focused")&&!apbctLocalStorage.get("ct_has_input_focused")||"native"!==ctPublic.data__cookies_type||void 0===ctGetCookie("ct_has_input_focused")||void 0===ctGetCookie("ct_has_key_up")){var e=ctGetPageForms();if(ctPublic.handled_fields=[],0_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"elementBody",document.querySelector("body")),_defineProperty(this,"collectionForms",document.forms),this.setListeners()},[{key:"setListeners",value:function(){var t=this;this.elementBody.addEventListener("click",function(e){t.checkElementInForms(e,"addClicks")}),this.elementBody.addEventListener("mouseup",function(e){"Range"==document.getSelection().type.toString()&&t.addSelected()}),this.elementBody.addEventListener("mousemove",function(e){t.checkElementInForms(e,"trackMouseMovement")})}},{key:"checkElementInForms",value:function(e,t){for(var n,o=0;o_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"fieldData",{isAutoFill:!1,isUseBuffer:!1,speedDelta:0,firstKeyTimestamp:0,lastKeyTimestamp:0,lastDelta:0,countOfKey:0}),_defineProperty(this,"fields",document.querySelectorAll("textarea[name=comment]")),_defineProperty(this,"data",[])},[{key:"gatheringFields",value:function(){var n=this;Array.prototype.slice.call(this.fields).forEach(function(e,t){n.data.push(Object.assign({},n.fieldData))})}},{key:"setListeners",value:function(){var o=this;this.fields.forEach(function(e,t){e.addEventListener("paste",function(){o.data[t].isUseBuffer=!0})}),this.fields.forEach(function(e,t){e.addEventListener("onautocomplete",function(){o.data[t].isAutoFill=!0})}),this.fields.forEach(function(e,n){e.addEventListener("input",function(){o.data[n].countOfKey++;var e,t=+new Date;1===o.data[n].countOfKey?(o.data[n].lastKeyTimestamp=t,o.data[n].firstKeyTimestamp=t):(e=t-o.data[n].lastKeyTimestamp,2===o.data[n].countOfKey?(o.data[n].lastKeyTimestamp=t,o.data[n].lastDelta=e):2{function o(){_classCallCheck(this,o)}return _createClass(o,null,[{key:"getFrontendDataLog",value:function(){var e=("undefined"!=typeof ctPublicFunctions&&ctPublicFunctions.cookiePrefix?ctPublicFunctions.cookiePrefix:"")+o.LOG_KEY,t=o.LOG_KEY;if(void 0!==apbctLocalStorage&&apbctLocalStorage.get){var n=apbctLocalStorage.get(e)||apbctLocalStorage.get(t)||null;if(n&&"string"==typeof n)try{return JSON.parse(n)}catch(e){return""}return n}n=(n=localStorage.getItem(e))||localStorage.getItem(t)||null;try{return"string"==typeof n?JSON.parse(n):n}catch(e){return""}}},{key:"asDTO",value:function(){return{botd_logic_loaded:o.botdLogicLoaded,botd_wrapper_loaded:o.botdWrapperLoaded,frontend_data_log:"",transport_enabled:1}}},{key:"detectScripts",value:function(){if(o.botdWrapperLoaded&&o.botdLogicLoaded)return!0;for(var e=document.getElementsByTagName("script"),t=0;t .comment-body *[class*="comment-author"]',document.querySelector(".apbct-trp .comment-author .comment-author-link")&&(e='.apbct-trp *[class*="comment-author-link"]'),0!==(e=document.querySelectorAll(e+',.apbct-trp > .wp-block-group *[class*="comment-author"],.apbct-trp *[class*="review__author"],.apbct-trp td[class*="column-author"] > strong')).length)&&(e.forEach(function(e,t){var n,o,a,c,r,i,l,s,u;e.className.indexOf("review")<0&&"undefined"==typeof pagenow&&e.parentElement.className.indexOf("group")<0&&"DIV"!=e.tagName||e.querySelector(".comment-metadata")||((n=document.createElement("div")).setAttribute("class","apbct-real-user-badge"),(o=document.createElement("img")).setAttribute("src",d.imgPersonUrl),o.setAttribute("class","apbct-real-user-popup-img"),(a=document.createElement("div")).setAttribute("class","apbct-real-user-popup"),(i=document.createElement("strong")).append(d.phrases.trpHeading),(c=document.createElement("div")).setAttribute("class","apbct-real-user-popup-content_row"),(r=document.createElement("div")).append(" "),r.append(i),r.append(d.phrases.trpContent1),(i=document.createElement("div")).style.display="flex",i.style.gap="5px",(l=document.createElement("div")).append(d.phrases.trpContent2),i.append(l),p&&(l=document.createElement("div"),(s=document.createElement("a")).setAttribute("href",d.trpContentLink),s.setAttribute("target","_blank"),(u=document.createElement("img")).setAttribute("src",ctAdminCommon.new_window_gif),u.setAttribute("alt","New window"),u.setAttribute("style","padding-top:3px"),s.append(u),l.append(s),i.append(l)),c.append(r,i),a.append(c),n.append(o),e.append(n),e.append(a))}),document.querySelectorAll(".apbct-real-user-badge").forEach(function(o){var a=void 0,e=(t.body.addEventListener("click",function(e){-1==e.target.className.indexOf("apbct-real-user")&&-1==e.target.parentElement.className.indexOf("apbct-real-user")&&closeAllPopupTRP()}),o.addEventListener("click",function(){var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.toggle("visible")}),o.addEventListener("mouseenter",function(){closeAllPopupTRP();var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.add("visible")}),o.addEventListener("mouseleave",function(){var t=this;a=setTimeout(function(){var e=t.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.nextElementSibling);e.addEventListener("mouseenter",function(){clearTimeout(a),e.classList.add("visible")}),e.addEventListener("mouseleave",function(){a=setTimeout(function(){e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.addEventListener("touchend",function(){var n=this;a=setTimeout(function(){var e=n.nextElementSibling,t=window.getSelection();e&&t&&e.classList.contains("apbct-real-user-popup")&&0===t.toString().length?e.classList.remove("visible"):(clearTimeout(a),document.addEventListener("selectionchange",function e(){var t=window.getSelection();t&&0===t.toString().length&&(a=setTimeout(function(){var e=o.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},3e3),document.removeEventListener("selectionchange",e))}))},3e3)})})))}); \ No newline at end of file +function _callSuper(e,t,n){return t=_getPrototypeOf(t),_possibleConstructorReturn(e,_isNativeReflectConstruct()?Reflect.construct(t,n||[],_getPrototypeOf(e).constructor):t.apply(e,n))}function _possibleConstructorReturn(e,t){if(t&&("object"==_typeof(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_isNativeReflectConstruct=function(){return!!e})()}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function ownKeys(t,e){var n,o=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,n)),o}function _objectSpread(t){for(var e=1;et||c=e.length?{done:!0}:{done:!1,value:e[c++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var n;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n{var n,e;if(c.data.forEach(function(e){e.encoded_email===a[t].dataset.originalString&&(n=e)}),!1===n.is_allowed)return{v:void 0};if(void 0===a[t].href||0!==a[t].href.indexOf("mailto:")&&0!==a[t].href.indexOf("tel:"))a[t].classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a[t])},2e3);else{if(0===a[t].href.indexOf("mailto:"))e="mailto:";else{if(0!==a[t].href.indexOf("tel:"))return 0;e="tel:"}var o=a[t].href.replace(e,"");ctReplaceInTextNodes(a[t],o,ctHtmlToText(n.decoded_email)),a[t].href=e+n.decoded_email,a[t].querySelectorAll("span.apbct-email-encoder").forEach(function(t){var n="";c.data.forEach(function(e){e.encoded_email===t.dataset.originalString&&(n=e.decoded_email)}),t.textContent=ctHtmlToText(n)})}a[t].removeEventListener("click",ctFillDecodedEmailHandler)})(t))&&e)return e.v}else{var n=c.data[0];a.classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a)},2e3),a.removeEventListener("click",ctFillDecodedEmailHandler)}}function ctReplaceInTextNodes(e,t,n){if(t){e.normalize();for(var o,a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);o=a.nextNode();)if(-1!==o.nodeValue.indexOf(t))return void(o.nodeValue=o.nodeValue.replace(t,function(){return n}))}}function ctHtmlToText(e){return e?(new DOMParser).parseFromString(String(e),"text/html").documentElement.textContent:""}function ctProcessDecodedDataResult(e,t){t.setAttribute("title",""),t.removeAttribute("style"),ctFillDecodedEmail(t,e.decoded_email)}function ctFillDecodedEmail(e,t){e.innerHTML=e.innerHTML.replace(/.+?(
)/,t+"$1")}var ctEmailDecoderIsInitialized=!1,cleantalkModal=(document.addEventListener("DOMContentLoaded",function(){if(!ctEmailDecoderIsInitialized){ctEmailDecoderIsInitialized=!0;var e=document.querySelectorAll("[data-original-string]");if("undefined"!=typeof ctPublic&&(ctPublic.encodedEmailNodes=e),e.length)for(var t=0;t$1')):(c.innerHTML="Loading...",t&&this.load(t)),c.setAttribute("id","cleantalk-modal-content"),n.append(c),this.opened=!0},confirm:function(e){var t,n=1_createClass(function e(t){_classCallCheck(this,e),_defineProperty(this,"ajax_parameters",{}),_defineProperty(this,"restParameters",{}),_defineProperty(this,"selector",null),_defineProperty(this,"elements",[]),_defineProperty(this,"eventCallback",void 0),_defineProperty(this,"eventSelector",void 0),_defineProperty(this,"event",void 0),this.select(t)},[{key:"select",value:function(e){return e instanceof HTMLCollection?(this.selector=null,this.elements=[],this.elements=Array.prototype.slice.call(e)):"object"===_typeof(e)?(this.selector=null,this.elements=[],this.elements[0]=e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect(),this}},{key:"addElement",value:function(e){"object"===_typeof(e)?this.elements.push(e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect()}},{key:"push",value:function(e){this.elements.push(e)}},{key:"reduce",value:function(){this.elements=this.elements.slice(0,-1)}},{key:"deselect",value:function(){this.elements=[]}},{key:"css",value:function(e,t){if(t=t||!1,"object"===_typeof(e)){for(var n in e)if(Object.hasOwn(e,n))for(var o=n.replace(/([-_][a-z])/g,function(e){return e.toUpperCase().replace("-","").replace("_","")}),a=0;a(e=document.createElement(e).constructor,!Boolean(~[HTMLElement,HTMLUnknownElement].indexOf(e))))(t)?n||e.tagName.toLowerCase()===t.toLowerCase():t.match(/^[a-z]/)?n||Boolean(e[t]):n||(null!==this.selector?null!==document.querySelector(this.selector+t):this.isWithoutSelector(e,t)):n}},{key:"isWithoutSelector",value:function(e,t){var n,o=!1,a=_createForOfIteratorHelper(document.querySelectorAll(t));try{for(a.s();!(n=a.n()).done;)o=o||e===n.value}catch(e){a.e(e)}finally{a.f()}return o}},{key:"filter",value:function(e){this.selector=null;for(var t=this.elements.length-1;0<=t;t--)this.isElem(this.elements[t],e)||this.elements.splice(Number(t),1);return this}},{key:"parent",value:function(e){return this.select(this.elements[0].parentElement),void 0===e||this.is(e)||this.deselect(),this}},{key:"parents",value:function(e){for(this.select(this.elements[0]);null!==this.elements[this.elements.length-1].parentElement;)this.push(this.elements[this.elements.length-1].parentElement);return this.elements.splice(0,1),void 0!==e&&this.filter(e),this}},{key:"children",value:function(e){return this.select(this.elements[0].children),void 0!==e&&this.filter(e),this}},{key:"siblings",value:function(e){var t=this.elements[0];return this.parent(),this.children(e),this.elements.splice(this.elements.indexOf(t),1),this}},{key:"remove",value:function(){var e,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(e=t.n()).done;)e.value.remove()}catch(e){t.e(e)}finally{t.f()}}},{key:"after",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.after(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"append",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.append(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"fadeIn",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity+(new Date-n)/o,n=+new Date,+t.style.opacity<1&&(window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16))}var t=a.value,n=(t.style.opacity=0,t.style.display="block",+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}},{key:"fadeOut",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity-(new Date-n)/o,n=+new Date,0<+t.style.opacity?window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16):t.style.display="none"}var t=a.value,n=(t.style.opacity=1,+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}}]))());function apbct(e){return(new ApbctCore).select(e)}Object.prototype.hasOwn||Object.defineProperty(Object.prototype,"hasOwn",{value:function(e){return Object.prototype.hasOwnProperty.call(this,e)},enumerable:!1,configurable:!0,writable:!0});var ApbctFetchProxyCallbacks={mailchimpBlock:function(e){try{for(var t=localStorage.length-1;0<=t;t--){var n=localStorage.key(t);n&&-1!==n.indexOf("mcforms")&&localStorage.removeItem(n)}}catch(e){console.warn("Error clearing localStorage by mcforms mask:",e)}}},ApbctFetchProxyConfig={mailchimp:{selector:".mcforms-wrapper",urlPattern:"mcf-integrations-mcmktg.mlchmpcompprduse2.iks2.a.intuit.com/gateway/receive",externalForm:!0,action:"cleantalk_force_mailchimp_shadowroot_check",callbackAllow:!1,callbackBlock:ApbctFetchProxyCallbacks.mailchimpBlock},otterform:{selector:".otter-form__container",urlPattern:"otter/v1/form/frontend",externalForm:!1,action:"cleantalk_force_otterform_check",callbackAllow:!1,callbackBlock:!1},elfsight:{selector:'[class*="elfsight-app"]',urlPattern:"data.elfsight.com/public/resources/form-submissions",externalForm:!0,action:"cleantalk_force_elfsight_check",payloadKey:"elfsight_payload",callbackAllow:!1,callbackBlock:!1}},ApbctFetchProxyProtection=(()=>{return _createClass(function e(){_classCallCheck(this,e),this.config=ApbctFetchProxyConfig},[{key:"findMatchingConfig",value:function(e){for(var t="string"==typeof e?e:null!=e&&"string"==typeof e.href?e.href:"",n=0,o=Object.entries(this.config);n_createClass(function e(){_classCallCheck(this,e)},[{key:"attachEventTokenToMultipageGravityForms",value:function(){document.addEventListener("gform_page_loaded",function(){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||"function"!=typeof setEventTokenField||"function"!=typeof botDetectorLocalStorage||setEventTokenField(botDetectorLocalStorage.get("bot_detector_event_token"))})}},{key:"attachEventTokenToWoocommerceGetRequestAddToCart",value:function(){ctPublic.wc_ajax_add_to_cart||document.querySelectorAll("a.add_to_cart_button:not(.product_type_variable):not(.wc-interactive)").forEach(function(o){o.addEventListener("click",function(e){var t=o.getAttribute("href"),n=apbctLocalStorage.get("bot_detector_event_token");n&&(-1===t.indexOf("?")?t+="?":t+="&",o.setAttribute("href",t+="ct_bot_detector_event_token="+n))})})}},{key:"restartBotDetectorEventTokenAttach",value:function(){var e,t=0_createClass(function e(){_classCallCheck(this,e)},[{key:"attachHiddenFieldsToForms",value:function(e){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||+ctPublic.bot_detector_enabled&&!e||(ctNoCookieAttachHiddenFieldsToForms(),document.addEventListener("gform_page_loaded",ctNoCookieAttachHiddenFieldsToForms))}},{key:"attachVisibleFieldsToForm",value:function(e,t){var n=document.createElement("input"),t=(n.setAttribute("type","hidden"),n.setAttribute("id","apbct_visible_fields_"+t),n.setAttribute("name","apbct_visible_fields"),{});t[0]=this.collectVisibleFields(e),n.value=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),e.append(n)}},{key:"attachVisibleFieldsDuringSubmit",value:function(e,t){"native"!==ctPublic.data__cookies_type&&void 0!==e.target.ctFormIndex&&this.setVisibleFieldsCookie(this.collectVisibleFields(t),e.target.ctFormIndex)}},{key:"constructNoCookieHiddenField",value:function(e){var t="hidden",e=("submit"===e&&(t="submit"),""),n=getCleanTalkStorageDataArray(),n=JSON.stringify(n);return n="_ct_no_cookie_data_"+btoa(unescape(encodeURIComponent(n))),(e=document.createElement("input")).setAttribute("name","ct_no_cookie_hidden_field"),e.setAttribute("value",n),e.setAttribute("type",t),e.classList.add("apbct_special_field"),e.classList.add("ct_no_cookie_hidden_field"),e}},{key:"attachNoCookieDuringSubmit",value:function(e){"none"===ctPublic.data__cookies_type&&e.target&&e.target.action&&-1!==e.target.action.toString().indexOf("mailpoet_subscription_form")&&(window.XMLHttpRequest.prototype.send=function(e){var t,n;+ctPublic.bot_detector_enabled?(t=(new ApbctHandler).toolGetEventToken())&&(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+("data%5Bct_bot_detector_event_token%5D="+t+"&")+e)):(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+e)),setTimeout(function(){window.XMLHttpRequest.prototype.send=defaultSend},0)})}},{key:"setVisibleFieldsCookie",value:function(e,t){var n="object"===_typeof(e)&&null!==e?e:{};if("native"===ctPublic.data__cookies_type)for(var o in n){if(10{function p(){_classCallCheck(this,p)}return _createClass(p,[{key:"excludeForm",value:function(e){return!!this.checkHiddenFieldsExclusions(e,"visible_fields")||!!(e.querySelector('input[name="wspsc_add_cart_submit"]')||e.querySelector('input[name="option"][value="com_vikrentcar"]')||e.querySelector('input[name="option"][value="com_vikbooking"]'))||void 0!==e.elements.apbct_visible_fields&&0{var n=_asyncToGenerator(_regenerator().m(function e(t,n){var o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(+ctPublic.settings__forms__check_external){e.n=1;break}return e.a(2,!1);case 1:o=_createForOfIteratorHelper(c),e.p=2,o.s();case 3:if((a=o.n()).done)e.n=6;else{if((a=a.value).matches(t,n))return a=a.getForm(),e.n=4,i(a);e.n=5}break;case 4:if(e.v)return e.a(2,!0);e.n=5;break;case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,a=e.v,o.e(a);case 8:return e.p=8,o.f(),e.f(8);case 9:return e.a(2,!1)}},e,null,[[2,7,8,9]])}));return function(e,t){return n.apply(this,arguments)}})(),c=[{name:"bitrix24",matches:function(e,t){return document.querySelector(".b24-form")&&e.includes("bitrix/services/main/ajax.php?action=crm.site.form.fill")&&t[1].body instanceof FormData},getForm:function(){return document.querySelector(".b24-form form")}},{name:"sender",matches:function(e,t){return e.includes("stats.sender.net/forms")&&"string"==typeof t[1].body},getForm:function(){for(var e=document.querySelectorAll("iframe"),t=0;t{var t=_asyncToGenerator(_regenerator().m(function e(t){var n,o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}return e.a(2,!1);case 1:return n=r(t),b=!0,e.p=2,e.n=3,new Promise(function(e,t){apbct_public_sendAJAX(n,{async:!0,callback:e,onErrorCallback:t})});case 3:return o=e.v,(a=void 0!==o.apbct&&+o.apbct.blocked||void 0!==o.data&&void 0!==o.data.message)&&(new ApbctShowForbidden).parseBlockMessage(o),e.a(2,a);case 4:return e.p=4,e.a(2,!1);case 5:return e.p=5,b=!1,e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(e){return t.apply(this,arguments)}})(),r=function(e){var t,n={action:"cleantalk_force_ajax_check"},o=_createForOfIteratorHelper(e.elements);try{for(o.s();!(t=o.n()).done;){var a=t.value;a.name&&(n[a.name]=a.value)}}catch(e){o.e(e)}finally{o.f()}return+ctPublic.bot_detector_enabled?n.ct_bot_detector_event_token=apbctLocalStorage.get("bot_detector_event_token"):n.ct_no_cookie_hidden_field=getNoCookieData(),n};window.fetch=_asyncToGenerator(_regenerator().m(function e(){var t,n,o,a,c,i,r,l,s,u,d,p=arguments;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:for(t=p.length,n=new Array(t),o=0;o!(!t||"string"!=typeof t)&&["google.com/recaptcha","gstatic.com/recaptcha","recaptcha.google.com","recaptcha.net","www.google.com/recaptcha","apis.google.com","paypal.com","api.paypal.com","www.paypal.com","js.stripe.com","api.stripe.com","checkout.stripe.com","api.doboard.com"].some(function(e){return t.includes(e)}))(a="string"==typeof n[0]?n[0]:(null==(a=n[0])?void 0:a.url)||""))return e.a(2,y.apply(this,n));e.n=2;break;case 2:if(n&&n[0]&&n[1]&&n[1].body){e.n=3;break}return e.a(2,y.apply(this,n));case 3:return e.n=4,_.processFetch(n);case 4:if(!0===e.v)return e.a(2,Promise.reject(new Error("Forbidden")));e.n=5;break;case 5:if(0{try{return n[0].includes(new URL(ctPublicFunctions._rest_url).pathname+"metform/")}catch(e){}})()))try{n[1].body=m(n[1].body,f(+ctPublic.bot_detector_enabled))}catch(e){}if(0{var t=e.value;"undefined"!=typeof ctPublic&&1==+ctPublic.settings__forms__search_test&&null!==t.getAttribute("apbct-form-sign")&&"native_search"===t.getAttribute("apbct-form-sign")&&(t.apbctSearchPrevOnsubmit=t.onsubmit,t.onsubmit=function(e){return n.searchFormHandler(e,t)})})()}catch(e){t.e(e)}finally{t.f()}}},{key:"searchFormHandler",value:function(e,t){try{var n,o,a,c=t.querySelector('[name*="apbct__email_id__"]'),i=null,r=(null!==c&&null!==c.value&&(i=c.value),getCleanTalkStorageDataArray()),l=apbctLocalStorage.get("bot_detector_event_token");null===r&&null===c&&null===l||(e.preventDefault(),n=function(){null!==c&&c.parentNode.removeChild(c),"function"==typeof t.apbctSearchPrevOnsubmit?t.apbctSearchPrevOnsubmit():HTMLFormElement.prototype.submit.call(t)},o=r,null!==i&&(o.apbct_search_form__honeypot_value=i),o.ct_bot_detector_event_token=l,"string"==typeof o.apbct_pixel_url&&-1!==o.apbct_pixel_url.indexOf("%3A")&&(o.apbct_pixel_url=decodeURIComponent(o.apbct_pixel_url)),void 0!==(a=JSON.stringify(o))&&0!==a.length?ctSetAlternativeCookie(a,{callback:n,onErrorCallback:n,forceAltCookies:!0}):n())}catch(e){console.warn("APBCT search form onsubmit handler error. "+e)}}},{key:"toolForAntiCrawlerCheckDuringBotDetector",value:function(){var e=setInterval(function(){localStorage.bot_detector_event_token&&(ctSetCookie("apbct_bot_detector_exist","1","3600"),clearInterval(e))},500)}},{key:"toolGetEventToken",value:function(){var t=localStorage.getItem("bot_detector_event_token");try{t=JSON.parse(t)}catch(e){t=!1}return!(null===t||!1===t||!t.hasOwnProperty("value")||""===t.value)&&t.value}}])})(),ApbctShowForbidden=(()=>_createClass(function e(){_classCallCheck(this,e)},[{key:"prepareBlockForAjaxForms",value:function(){var o=function(e){if(e.responseText&&-1!==e.responseText.indexOf('"apbct')&&-1===e.responseText.indexOf("DOCTYPE"))try{this.parseBlockMessage(JSON.parse(e.responseText))}catch(e){console.log(e.toString())}}.bind(this);"undefined"!=typeof jQuery?"function"!=typeof jQuery(document).ajaxComplete()?jQuery(document).on("ajaxComplete",function(e,t,n){o(t)}):jQuery(document).ajaxComplete(function(e,t,n){o(t)}):"undefined"!=typeof XMLHttpRequest&&document.addEventListener("readystatechange",function(e){4===e.target.readyState&&o(e.target)})}},{key:"parseBlockMessage",value:function(e){var t,n="";if((void 0!==e.apbct&&(e=e.apbct).blocked&&(n=e.comment),n=void 0!==e.data&&void 0!==(e=e.data).message?e.message:n)&&(document.dispatchEvent(new CustomEvent("apbctAjaxBockAlert",{bubbles:!0,detail:{message:n}})),cleantalkModal.loaded=n,cleantalkModal.open(),1==+e.stop_script&&(window.stop(),e.integration&&"NEXForms"===e.integration&&((t=document.querySelector("form.submit-nex-form button.nex-submit"))&&(t.disabled=!0,t.style.opacity="0.5",t.style.cursor="not-allowed",t.style.pointerEvents="none",t.style.backgroundColor="#ccc",t.style.color="#fff"),t=document.querySelector("div.nex_success_message"))&&(t.style.display="none"),e.integration)&&"ElfsightForm"===e.integration)){var o=[document];try{document.querySelectorAll("iframe").forEach(function(e){try{e.contentDocument&&o.push(e.contentDocument)}catch(e){}})}catch(e){}for(var a=0,c=o;a_createClass(function e(){_classCallCheck(this,e)},[{key:"extract",value:function(e){if(e&&"string"==typeof e){try{e=decodeURIComponent(e)}catch(e){return!1}var t=document.querySelectorAll("form"),n=this.getIdFromAjax(e);if(n){var o,a=_createForOfIteratorHelper(t);try{for(a.s();!(o=a.n()).done;){var c=o.value,i=this.findParentContainer(c);if(i){var r=this.getIdFromHTML(i);if(r===n){var l=i.querySelector("input[id^=apbct_visible_fields_]");if(null!=l&&l.value)return l.value}}}}catch(e){a.e(e)}finally{a.f()}}}return!1}},{key:"getIdFromAjax",value:function(e){return console.warn("getIdFromAjax must be implemented by child class"),null}},{key:"findParentContainer",value:function(e){return console.warn("findParentContainer must be implemented by child class"),null}},{key:"getIdFromHTML",value:function(e){return console.warn("getIdFromHTML must be implemented by child class"),null}}],[{key:"createExtractor",value:function(e){switch(e){case"action=nf_ajax_submit":return new ApbctNinjaFormsVisibleFields;case"action=mailpoet":return new ApbctMailpoetVisibleFields;default:return null}}}]))(),ApbctNinjaFormsVisibleFields=(()=>{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/"id"\s*:\s*"?(\d+)"/,/form_id\s*[:\s]*"?(\d+)"/,/nf-form-(\d+)/,/"id":(\d+)/];t{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/form_id\s*[:\s]*"?(\d+)"/,/data\[form_id\]=(\d+)/,/form_id=(\d+)/];t_createClass(function e(){_classCallCheck(this,e)},[{key:"setSessionId",value:function(){var e;apbctSessionStorage.isSet("apbct_session_id")?apbctLocalStorage.set("apbct_page_hits",Number(apbctLocalStorage.get("apbct_page_hits"))+1):(e=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(2,10),apbctSessionStorage.set("apbct_session_id",e,!1),apbctLocalStorage.set("apbct_page_hits",1),document.referrer&&new URL(document.referrer).host!==location.host&&apbctSessionStorage.set("apbct_site_referer",document.referrer,!1))}},{key:"writeReferrersToSessionStorage",value:function(){var e=apbctSessionStorage.get("apbct_session_current_page");!1!==e&&document.location.href!==e&&apbctSessionStorage.set("apbct_prev_referer",e,!1),apbctSessionStorage.set("apbct_session_current_page",document.location.href,!1)}},{key:"setCookiesType",value:function(){var e=apbctLocalStorage.get("ct_cookies_type");e&&e===ctPublic.data__cookies_type||(apbctLocalStorage.set("ct_cookies_type",ctPublic.data__cookies_type),apbctLocalStorage.delete("ct_mouse_moved"),apbctLocalStorage.delete("ct_has_scrolled"))}},{key:"startFieldsListening",value:function(){if(!apbctLocalStorage.isSet("ct_has_key_up")&&!apbctLocalStorage.get("ct_has_key_up")||!apbctLocalStorage.isSet("ct_has_input_focused")&&!apbctLocalStorage.get("ct_has_input_focused")||"native"!==ctPublic.data__cookies_type||void 0===ctGetCookie("ct_has_input_focused")||void 0===ctGetCookie("ct_has_key_up")){var e=document.forms;if(ctPublic.handled_fields=[],e&&0_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"elementBody",document.querySelector("body")),_defineProperty(this,"collectionForms",document.forms),this.setListeners()},[{key:"setListeners",value:function(){var t=this;this.elementBody.addEventListener("click",function(e){t.checkElementInForms(e,"addClicks")}),this.elementBody.addEventListener("mouseup",function(e){"Range"==document.getSelection().type.toString()&&t.addSelected()}),this.elementBody.addEventListener("mousemove",function(e){t.checkElementInForms(e,"trackMouseMovement")})}},{key:"checkElementInForms",value:function(e,t){for(var n,o=0;o_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"fieldData",{isAutoFill:!1,isUseBuffer:!1,speedDelta:0,firstKeyTimestamp:0,lastKeyTimestamp:0,lastDelta:0,countOfKey:0}),_defineProperty(this,"fields",document.querySelectorAll("textarea[name=comment]")),_defineProperty(this,"data",[])},[{key:"gatheringFields",value:function(){var n=this;Array.prototype.slice.call(this.fields).forEach(function(e,t){n.data.push(Object.assign({},n.fieldData))})}},{key:"setListeners",value:function(){var o=this;this.fields.forEach(function(e,t){e.addEventListener("paste",function(){o.data[t].isUseBuffer=!0})}),this.fields.forEach(function(e,t){e.addEventListener("onautocomplete",function(){o.data[t].isAutoFill=!0})}),this.fields.forEach(function(e,n){e.addEventListener("input",function(){o.data[n].countOfKey++;var e,t=+new Date;1===o.data[n].countOfKey?(o.data[n].lastKeyTimestamp=t,o.data[n].firstKeyTimestamp=t):(e=t-o.data[n].lastKeyTimestamp,2===o.data[n].countOfKey?(o.data[n].lastKeyTimestamp=t,o.data[n].lastDelta=e):2{function o(){_classCallCheck(this,o)}return _createClass(o,null,[{key:"getFrontendDataLog",value:function(){var e=("undefined"!=typeof ctPublicFunctions&&ctPublicFunctions.cookiePrefix?ctPublicFunctions.cookiePrefix:"")+o.LOG_KEY,t=o.LOG_KEY;if("undefined"!=typeof apbctLocalStorage&&apbctLocalStorage.get){var n=apbctLocalStorage.get(e)||apbctLocalStorage.get(t)||null;if(n&&"string"==typeof n)try{return JSON.parse(n)}catch(e){return""}return n}n=(n=localStorage.getItem(e))||localStorage.getItem(t)||null;try{return"string"==typeof n?JSON.parse(n):n}catch(e){return""}}},{key:"asDTO",value:function(){return{botd_logic_loaded:o.botdLogicLoaded,botd_wrapper_loaded:o.botdWrapperLoaded,frontend_data_log:"",transport_enabled:1}}},{key:"detectScripts",value:function(){if(o.botdWrapperLoaded&&o.botdLogicLoaded)return!0;for(var e=document.getElementsByTagName("script"),t=0;t .comment-body *[class*="comment-author"]',document.querySelector(".apbct-trp .comment-author .comment-author-link")&&(e='.apbct-trp *[class*="comment-author-link"]'),0!==(e=document.querySelectorAll(e+',.apbct-trp > .wp-block-group *[class*="comment-author"],.apbct-trp *[class*="review__author"],.apbct-trp td[class*="column-author"] > strong')).length)&&(e.forEach(function(e,t){var n,o,a,c,i,r,l,s,u;e.className.indexOf("review")<0&&"undefined"==typeof pagenow&&e.parentElement.className.indexOf("group")<0&&"DIV"!=e.tagName||e.querySelector(".comment-metadata")||((n=document.createElement("div")).setAttribute("class","apbct-real-user-badge"),(o=document.createElement("img")).setAttribute("src",d.imgPersonUrl),o.setAttribute("class","apbct-real-user-popup-img"),(a=document.createElement("div")).setAttribute("class","apbct-real-user-popup"),(r=document.createElement("strong")).append(d.phrases.trpHeading),(c=document.createElement("div")).setAttribute("class","apbct-real-user-popup-content_row"),(i=document.createElement("div")).append(" "),i.append(r),i.append(d.phrases.trpContent1),(r=document.createElement("div")).style.display="flex",r.style.gap="5px",(l=document.createElement("div")).append(d.phrases.trpContent2),r.append(l),p&&(l=document.createElement("div"),(s=document.createElement("a")).setAttribute("href",d.trpContentLink),s.setAttribute("target","_blank"),(u=document.createElement("img")).setAttribute("src",ctAdminCommon.new_window_gif),u.setAttribute("alt","New window"),u.setAttribute("style","padding-top:3px"),s.append(u),l.append(s),r.append(l)),c.append(i,r),a.append(c),n.append(o),e.append(n),e.append(a))}),document.querySelectorAll(".apbct-real-user-badge").forEach(function(o){var a=void 0,e=(t.body.addEventListener("click",function(e){-1==e.target.className.indexOf("apbct-real-user")&&-1==e.target.parentElement.className.indexOf("apbct-real-user")&&closeAllPopupTRP()}),o.addEventListener("click",function(){var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.toggle("visible")}),o.addEventListener("mouseenter",function(){closeAllPopupTRP();var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.add("visible")}),o.addEventListener("mouseleave",function(){var t=this;a=setTimeout(function(){var e=t.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.nextElementSibling);e.addEventListener("mouseenter",function(){clearTimeout(a),e.classList.add("visible")}),e.addEventListener("mouseleave",function(){a=setTimeout(function(){e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.addEventListener("touchend",function(){var n=this;a=setTimeout(function(){var e=n.nextElementSibling,t=window.getSelection();e&&t&&e.classList.contains("apbct-real-user-popup")&&0===t.toString().length?e.classList.remove("visible"):(clearTimeout(a),document.addEventListener("selectionchange",function e(){var t=window.getSelection();t&&0===t.toString().length&&(a=setTimeout(function(){var e=o.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},3e3),document.removeEventListener("selectionchange",e))}))},3e3)})})))}); diff --git a/js/apbct-public-bundle_full-protection.min.js b/js/apbct-public-bundle_full-protection.min.js index 31ea5342b..d9e72f06e 100644 --- a/js/apbct-public-bundle_full-protection.min.js +++ b/js/apbct-public-bundle_full-protection.min.js @@ -1 +1 @@ -function ownKeys(t,e){var n,o=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,n)),o}function _objectSpread(t){for(var e=1;et||r=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var n;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n{var n,e;if(r.data.forEach(function(e){e.encoded_email===a[t].dataset.originalString&&(n=e)}),!1===n.is_allowed)return{v:void 0};if(void 0===a[t].href||0!==a[t].href.indexOf("mailto:")&&0!==a[t].href.indexOf("tel:"))a[t].classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a[t])},2e3);else{if(0===a[t].href.indexOf("mailto:"))e="mailto:";else{if(0!==a[t].href.indexOf("tel:"))return 0;e="tel:"}var o=a[t].href.replace(e,"");ctReplaceInTextNodes(a[t],o,ctHtmlToText(n.decoded_email)),a[t].href=e+n.decoded_email,a[t].querySelectorAll("span.apbct-email-encoder").forEach(function(t){var n="";r.data.forEach(function(e){e.encoded_email===t.dataset.originalString&&(n=e.decoded_email)}),t.textContent=ctHtmlToText(n)})}a[t].removeEventListener("click",ctFillDecodedEmailHandler)})(t))&&e)return e.v}else{var n=r.data[0];a.classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a)},2e3),a.removeEventListener("click",ctFillDecodedEmailHandler)}}function ctReplaceInTextNodes(e,t,n){if(t){e.normalize();for(var o,a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);o=a.nextNode();)if(-1!==o.nodeValue.indexOf(t))return void(o.nodeValue=o.nodeValue.replace(t,function(){return n}))}}function ctHtmlToText(e){return e?(new DOMParser).parseFromString(String(e),"text/html").documentElement.textContent:""}function ctProcessDecodedDataResult(e,t){t.setAttribute("title",""),t.removeAttribute("style"),ctFillDecodedEmail(t,e.decoded_email)}function ctFillDecodedEmail(e,t){e.innerHTML=e.innerHTML.replace(/.+?(
)/,t+"$1")}var ctEmailDecoderIsInitialized=!1,cleantalkModal=(document.addEventListener("DOMContentLoaded",function(){if(!ctEmailDecoderIsInitialized){ctEmailDecoderIsInitialized=!0;var e=document.querySelectorAll("[data-original-string]");if("undefined"!=typeof ctPublic&&(ctPublic.encodedEmailNodes=e),e.length)for(var t=0;t$1')):(r.innerHTML="Loading...",t&&this.load(t)),r.setAttribute("id","cleantalk-modal-content"),n.append(r),this.opened=!0},confirm:function(e){var t,n=1_createClass(function e(t){_classCallCheck(this,e),_defineProperty(this,"ajax_parameters",{}),_defineProperty(this,"restParameters",{}),_defineProperty(this,"selector",null),_defineProperty(this,"elements",[]),_defineProperty(this,"eventCallback",void 0),_defineProperty(this,"eventSelector",void 0),_defineProperty(this,"event",void 0),this.select(t)},[{key:"select",value:function(e){return e instanceof HTMLCollection?(this.selector=null,this.elements=[],this.elements=Array.prototype.slice.call(e)):"object"===_typeof(e)?(this.selector=null,this.elements=[],this.elements[0]=e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect(),this}},{key:"addElement",value:function(e){"object"===_typeof(e)?this.elements.push(e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect()}},{key:"push",value:function(e){this.elements.push(e)}},{key:"reduce",value:function(){this.elements=this.elements.slice(0,-1)}},{key:"deselect",value:function(){this.elements=[]}},{key:"css",value:function(e,t){if(t=t||!1,"object"===_typeof(e)){for(var n in e)if(Object.hasOwn(e,n))for(var o=n.replace(/([-_][a-z])/g,function(e){return e.toUpperCase().replace("-","").replace("_","")}),a=0;a(e=document.createElement(e).constructor,!Boolean(~[HTMLElement,HTMLUnknownElement].indexOf(e))))(t)?n||e.tagName.toLowerCase()===t.toLowerCase():t.match(/^[a-z]/)?n||Boolean(e[t]):n||(null!==this.selector?null!==document.querySelector(this.selector+t):this.isWithoutSelector(e,t)):n}},{key:"isWithoutSelector",value:function(e,t){var n,o=!1,a=_createForOfIteratorHelper(document.querySelectorAll(t));try{for(a.s();!(n=a.n()).done;)o=o||e===n.value}catch(e){a.e(e)}finally{a.f()}return o}},{key:"filter",value:function(e){this.selector=null;for(var t=this.elements.length-1;0<=t;t--)this.isElem(this.elements[t],e)||this.elements.splice(Number(t),1);return this}},{key:"parent",value:function(e){return this.select(this.elements[0].parentElement),void 0===e||this.is(e)||this.deselect(),this}},{key:"parents",value:function(e){for(this.select(this.elements[0]);null!==this.elements[this.elements.length-1].parentElement;)this.push(this.elements[this.elements.length-1].parentElement);return this.elements.splice(0,1),void 0!==e&&this.filter(e),this}},{key:"children",value:function(e){return this.select(this.elements[0].children),void 0!==e&&this.filter(e),this}},{key:"siblings",value:function(e){var t=this.elements[0];return this.parent(),this.children(e),this.elements.splice(this.elements.indexOf(t),1),this}},{key:"remove",value:function(){var e,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(e=t.n()).done;)e.value.remove()}catch(e){t.e(e)}finally{t.f()}}},{key:"after",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.after(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"append",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.append(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"fadeIn",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity+(new Date-n)/o,n=+new Date,+t.style.opacity<1&&(window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16))}var t=a.value,n=(t.style.opacity=0,t.style.display="block",+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}},{key:"fadeOut",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity-(new Date-n)/o,n=+new Date,0<+t.style.opacity?window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16):t.style.display="none"}var t=a.value,n=(t.style.opacity=1,+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}}]))());function selectActualNonce(){var e="";return ctPublicFunctions.hasOwnProperty("_fresh_nonce")&&"string"==typeof ctPublicFunctions._fresh_nonce&&0{function o(e){for(var t in _classCallCheck(this,o),_defineProperty(this,"xhr",new XMLHttpRequest),_defineProperty(this,"method","POST"),_defineProperty(this,"url",""),_defineProperty(this,"async",!0),_defineProperty(this,"user",null),_defineProperty(this,"password",null),_defineProperty(this,"data",{}),_defineProperty(this,"button",null),_defineProperty(this,"spinner",null),_defineProperty(this,"progressbar",null),_defineProperty(this,"context",this),_defineProperty(this,"callback",null),_defineProperty(this,"onErrorCallback",null),_defineProperty(this,"responseType","json"),_defineProperty(this,"headers",{}),_defineProperty(this,"timeout",15e3),_defineProperty(this,"methods_to_convert_data_to_URL",["GET","HEAD"]),_defineProperty(this,"body",null),_defineProperty(this,"http_code",0),_defineProperty(this,"status_text",""),e)void 0!==this[t]&&(this[t]=e[t]);if(this.prepare(),Object.keys(this.data).length&&(this.deleteDoubleJSONEncoding(this.data),this.convertData()),!this.url)return console.log("%cXHR%c not URL provided","color: red; font-weight: bold;","color: grey; font-weight: normal;"),!1;this.xhr.open(this.method,this.url,this.async,this.user,this.password),this.setHeaders(),this.xhr.responseType=this.responseType,this.xhr.timeout=this.timeout,this.xhr.onreadystatechange=function(){this.isWpNonceError()?this.getFreshNonceAndRerunXHR(e):this.onReadyStateChange()}.bind(this),this.xhr.onload=function(){this.onLoad()}.bind(this),this.xhr.onprogress=function(e){this.onProgress(e)}.bind(this),this.xhr.onerror=function(){this.onError()}.bind(this),this.xhr.ontimeout=function(){this.onTimeout()}.bind(this),this.xhr.send(this.body)}return _createClass(o,[{key:"prepare",value:function(){this.button&&(this.button.setAttribute("disabled","disabled"),this.button.style.cursor="not-allowed"),this.spinner&&(this.spinner.style.display="inline")}},{key:"complete",value:function(){this.http_code=this.xhr.status,this.status_text=this.xhr.statusText,this.button&&(this.button.removeAttribute("disabled"),this.button.style.cursor="auto"),this.spinner&&(this.spinner.style.display="none"),this.progressbar&&this.progressbar.fadeOut("slow")}},{key:"onReadyStateChange",value:function(){null!==this.on_ready_state_change&&"function"==typeof this.on_ready_state_change&&this.on_ready_state_change()}},{key:"onProgress",value:function(e){null!==this.on_progress&&"function"==typeof this.on_progress&&this.on_progress()}},{key:"onError",value:function(){console.log("error"),this.complete(),this.error(this.http_code,this.status_text),null!==this.onErrorCallback&&"function"==typeof this.onErrorCallback&&this.onErrorCallback(this.status_text)}},{key:"onTimeout",value:function(){this.complete(),this.error(0,"timeout"),null!==this.onErrorCallback&&"function"==typeof this.onErrorCallback&&this.onErrorCallback("Timeout")}},{key:"onLoad",value:function(){if(this.complete(),"json"===this.responseType){if(null===this.xhr.response)return this.error(this.http_code,this.status_text,"No response"),!1;if(void 0!==this.xhr.response.error)return this.error(this.http_code,this.status_text,this.xhr.response.error),!1}null!==this.callback&&"function"==typeof this.callback&&this.callback.call(this.context,this.xhr.response,this.data)}},{key:"isWpNonceError",value:function(){var e=!1,t=!1;return 4==this.xhr.readyState&&(e="object"===_typeof(this.xhr.response)&&null!==this.xhr.response&&this.xhr.response.hasOwnProperty("data")&&this.xhr.response.data.hasOwnProperty("status")&&403===this.xhr.response.data.status,t="-1"===this.xhr.response&&403===this.xhr.status),e||t}},{key:"getFreshNonceAndRerunXHR",value:function(e){var t,n="";e.hasOwnProperty("headers")&&e.headers.hasOwnProperty("X-WP-Nonce")&&(n=e.headers["X-WP-Nonce"]),""!==(n=e.hasOwnProperty("data")&&e.data.hasOwnProperty("_ajax_nonce")?e.data._ajax_nonce:n)&&((t={method:"POST"}).data={spbc_remote_call_action:"get_fresh_wpnonce",plugin_name:"antispam",nonce_prev:n,initial_request_params:e},t.notJson=!0,t.url=ctPublicFunctions._ajax_url,t.callback=function(){for(var e=arguments.length,t=new Array(e),n=0;n{function o(){for(var e=arguments.length,t=new Array(e),n=0;n{function a(){for(var e=arguments.length,t=new Array(e),n=0;n{return _createClass(function e(){_classCallCheck(this,e),this.config=ApbctFetchProxyConfig},[{key:"findMatchingConfig",value:function(e){for(var t="string"==typeof e?e:null!=e&&"string"==typeof e.href?e.href:"",n=0,o=Object.entries(this.config);nMath.floor((new Date).getTime()/1e3)},isSet:function(e){return null!==localStorage.getItem(e)},delete:function(e){localStorage.removeItem(e)},getCleanTalkData:function(){for(var e={},t=0;t_createClass(function e(){_classCallCheck(this,e)},[{key:"attachEventTokenToMultipageGravityForms",value:function(){document.addEventListener("gform_page_loaded",function(){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||"function"!=typeof setEventTokenField||"function"!=typeof botDetectorLocalStorage||setEventTokenField(botDetectorLocalStorage.get("bot_detector_event_token"))})}},{key:"attachEventTokenToWoocommerceGetRequestAddToCart",value:function(){ctPublic.wc_ajax_add_to_cart||document.querySelectorAll("a.add_to_cart_button:not(.product_type_variable):not(.wc-interactive)").forEach(function(o){o.addEventListener("click",function(e){var t=o.getAttribute("href"),n=apbctLocalStorage.get("bot_detector_event_token");n&&(-1===t.indexOf("?")?t+="?":t+="&",o.setAttribute("href",t+="ct_bot_detector_event_token="+n))})})}},{key:"restartBotDetectorEventTokenAttach",value:function(){var e,t=0_createClass(function e(){_classCallCheck(this,e)},[{key:"attachHiddenFieldsToForms",value:function(e){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||+ctPublic.bot_detector_enabled&&!e||(ctNoCookieAttachHiddenFieldsToForms(),document.addEventListener("gform_page_loaded",ctNoCookieAttachHiddenFieldsToForms))}},{key:"attachVisibleFieldsToForm",value:function(e,t){var n=document.createElement("input"),t=(n.setAttribute("type","hidden"),n.setAttribute("id","apbct_visible_fields_"+t),n.setAttribute("name","apbct_visible_fields"),{});t[0]=this.collectVisibleFields(e),n.value=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),e.append(n)}},{key:"attachVisibleFieldsDuringSubmit",value:function(e,t){"native"!==ctPublic.data__cookies_type&&void 0!==e.target.ctFormIndex&&this.setVisibleFieldsCookie(this.collectVisibleFields(t),e.target.ctFormIndex)}},{key:"constructNoCookieHiddenField",value:function(e){var t="hidden",e=("submit"===e&&(t="submit"),""),n=getCleanTalkStorageDataArray(),n=JSON.stringify(n);return n="_ct_no_cookie_data_"+btoa(unescape(encodeURIComponent(n))),(e=document.createElement("input")).setAttribute("name","ct_no_cookie_hidden_field"),e.setAttribute("value",n),e.setAttribute("type",t),e.classList.add("apbct_special_field"),e.classList.add("ct_no_cookie_hidden_field"),e}},{key:"attachNoCookieDuringSubmit",value:function(e){"none"===ctPublic.data__cookies_type&&e.target&&e.target.action&&-1!==e.target.action.toString().indexOf("mailpoet_subscription_form")&&(window.XMLHttpRequest.prototype.send=function(e){var t,n;+ctPublic.bot_detector_enabled?(t=(new ApbctHandler).toolGetEventToken())&&(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+("data%5Bct_bot_detector_event_token%5D="+t+"&")+e)):(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+e)),setTimeout(function(){window.XMLHttpRequest.prototype.send=defaultSend},0)})}},{key:"setVisibleFieldsCookie",value:function(e,t){var n="object"===_typeof(e)&&null!==e?e:{};if("native"===ctPublic.data__cookies_type)for(var o in n){if(10{function p(){_classCallCheck(this,p)}return _createClass(p,[{key:"excludeForm",value:function(e){return!!this.checkHiddenFieldsExclusions(e,"visible_fields")||!!(e.querySelector('input[name="wspsc_add_cart_submit"]')||e.querySelector('input[name="option"][value="com_vikrentcar"]')||e.querySelector('input[name="option"][value="com_vikbooking"]'))||void 0!==e.elements.apbct_visible_fields&&0{var n=_asyncToGenerator(_regenerator().m(function e(t,n){var o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(+ctPublic.settings__forms__check_external){e.n=1;break}return e.a(2,!1);case 1:o=_createForOfIteratorHelper(r),e.p=2,o.s();case 3:if((a=o.n()).done)e.n=6;else{if((a=a.value).matches(t,n))return a=a.getForm(),e.n=4,c(a);e.n=5}break;case 4:if(e.v)return e.a(2,!0);e.n=5;break;case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,a=e.v,o.e(a);case 8:return e.p=8,o.f(),e.f(8);case 9:return e.a(2,!1)}},e,null,[[2,7,8,9]])}));return function(e,t){return n.apply(this,arguments)}})(),r=[{name:"bitrix24",matches:function(e,t){return document.querySelector(".b24-form")&&e.includes("bitrix/services/main/ajax.php?action=crm.site.form.fill")&&t[1].body instanceof FormData},getForm:function(){return document.querySelector(".b24-form form")}},{name:"sender",matches:function(e,t){return e.includes("stats.sender.net/forms")&&"string"==typeof t[1].body},getForm:function(){for(var e=document.querySelectorAll("iframe"),t=0;t{var t=_asyncToGenerator(_regenerator().m(function e(t){var n,o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}return e.a(2,!1);case 1:return n=i(t),b=!0,e.p=2,e.n=3,new Promise(function(e,t){apbct_public_sendAJAX(n,{async:!0,callback:e,onErrorCallback:t})});case 3:return o=e.v,(a=void 0!==o.apbct&&+o.apbct.blocked||void 0!==o.data&&void 0!==o.data.message)&&(new ApbctShowForbidden).parseBlockMessage(o),e.a(2,a);case 4:return e.p=4,e.a(2,!1);case 5:return e.p=5,b=!1,e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(e){return t.apply(this,arguments)}})(),i=function(e){var t,n={action:"cleantalk_force_ajax_check"},o=_createForOfIteratorHelper(e.elements);try{for(o.s();!(t=o.n()).done;){var a=t.value;a.name&&(n[a.name]=a.value)}}catch(e){o.e(e)}finally{o.f()}return+ctPublic.bot_detector_enabled?n.ct_bot_detector_event_token=apbctLocalStorage.get("bot_detector_event_token"):n.ct_no_cookie_hidden_field=getNoCookieData(),n};window.fetch=_asyncToGenerator(_regenerator().m(function e(){var t,n,o,a,r,c,i,l,s,u,d,p=arguments;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:for(t=p.length,n=new Array(t),o=0;o!(!t||"string"!=typeof t)&&["google.com/recaptcha","gstatic.com/recaptcha","recaptcha.google.com","recaptcha.net","www.google.com/recaptcha","apis.google.com","paypal.com","api.paypal.com","www.paypal.com","js.stripe.com","api.stripe.com","checkout.stripe.com","api.doboard.com"].some(function(e){return t.includes(e)}))(a="string"==typeof n[0]?n[0]:(null==(a=n[0])?void 0:a.url)||""))return e.a(2,h.apply(this,n));e.n=2;break;case 2:if(n&&n[0]&&n[1]&&n[1].body){e.n=3;break}return e.a(2,h.apply(this,n));case 3:return e.n=4,_.processFetch(n);case 4:if(!0===e.v)return e.a(2,Promise.reject(new Error("Forbidden")));e.n=5;break;case 5:if(0{try{return n[0].includes(new URL(ctPublicFunctions._rest_url).pathname+"metform/")}catch(e){}})()))try{n[1].body=m(n[1].body,f(+ctPublic.bot_detector_enabled))}catch(e){}if(0{var t=e.value;"undefined"!=typeof ctPublic&&1==+ctPublic.settings__forms__search_test&&null!==t.getAttribute("apbct-form-sign")&&"native_search"===t.getAttribute("apbct-form-sign")&&(t.apbctSearchPrevOnsubmit=t.onsubmit,t.onsubmit=function(e){return n.searchFormHandler(e,t)})})()}catch(e){t.e(e)}finally{t.f()}}},{key:"searchFormHandler",value:function(e,t){try{var n,o,a,r=t.querySelector('[name*="apbct__email_id__"]'),c=null,i=(null!==r&&null!==r.value&&(c=r.value),getCleanTalkStorageDataArray()),l=apbctLocalStorage.get("bot_detector_event_token");null===i&&null===r&&null===l||(e.preventDefault(),n=function(){null!==r&&r.parentNode.removeChild(r),"function"==typeof t.apbctSearchPrevOnsubmit?t.apbctSearchPrevOnsubmit():HTMLFormElement.prototype.submit.call(t)},o=i,null!==c&&(o.apbct_search_form__honeypot_value=c),o.ct_bot_detector_event_token=l,"string"==typeof o.apbct_pixel_url&&-1!==o.apbct_pixel_url.indexOf("%3A")&&(o.apbct_pixel_url=decodeURIComponent(o.apbct_pixel_url)),void 0!==(a=JSON.stringify(o))&&0!==a.length?ctSetAlternativeCookie(a,{callback:n,onErrorCallback:n,forceAltCookies:!0}):n())}catch(e){console.warn("APBCT search form onsubmit handler error. "+e)}}},{key:"toolForAntiCrawlerCheckDuringBotDetector",value:function(){var e=setInterval(function(){localStorage.bot_detector_event_token&&(ctSetCookie("apbct_bot_detector_exist","1","3600"),clearInterval(e))},500)}},{key:"toolGetEventToken",value:function(){var t=localStorage.getItem("bot_detector_event_token");try{t=JSON.parse(t)}catch(e){t=!1}return!(null===t||!1===t||!t.hasOwnProperty("value")||""===t.value)&&t.value}}])})(),ApbctShowForbidden=(()=>_createClass(function e(){_classCallCheck(this,e)},[{key:"prepareBlockForAjaxForms",value:function(){var o=function(e){if(e.responseText&&-1!==e.responseText.indexOf('"apbct')&&-1===e.responseText.indexOf("DOCTYPE"))try{this.parseBlockMessage(JSON.parse(e.responseText))}catch(e){console.log(e.toString())}}.bind(this);"undefined"!=typeof jQuery?"function"!=typeof jQuery(document).ajaxComplete()?jQuery(document).on("ajaxComplete",function(e,t,n){o(t)}):jQuery(document).ajaxComplete(function(e,t,n){o(t)}):"undefined"!=typeof XMLHttpRequest&&document.addEventListener("readystatechange",function(e){4===e.target.readyState&&o(e.target)})}},{key:"parseBlockMessage",value:function(e){var t,n="";if((void 0!==e.apbct&&(e=e.apbct).blocked&&(n=e.comment),n=void 0!==e.data&&void 0!==(e=e.data).message?e.message:n)&&(document.dispatchEvent(new CustomEvent("apbctAjaxBockAlert",{bubbles:!0,detail:{message:n}})),cleantalkModal.loaded=n,cleantalkModal.open(),1==+e.stop_script&&(window.stop(),e.integration&&"NEXForms"===e.integration&&((t=document.querySelector("form.submit-nex-form button.nex-submit"))&&(t.disabled=!0,t.style.opacity="0.5",t.style.cursor="not-allowed",t.style.pointerEvents="none",t.style.backgroundColor="#ccc",t.style.color="#fff"),t=document.querySelector("div.nex_success_message"))&&(t.style.display="none"),e.integration)&&"ElfsightForm"===e.integration)){var o=[document];try{document.querySelectorAll("iframe").forEach(function(e){try{e.contentDocument&&o.push(e.contentDocument)}catch(e){}})}catch(e){}for(var a=0,r=o;a_createClass(function e(){_classCallCheck(this,e)},[{key:"extract",value:function(e){if(e&&"string"==typeof e){try{e=decodeURIComponent(e)}catch(e){return!1}var t=document.querySelectorAll("form"),n=this.getIdFromAjax(e);if(n){var o,a=_createForOfIteratorHelper(t);try{for(a.s();!(o=a.n()).done;){var r=o.value,c=this.findParentContainer(r);if(c){var i=this.getIdFromHTML(c);if(i===n){var l=c.querySelector("input[id^=apbct_visible_fields_]");if(null!=l&&l.value)return l.value}}}}catch(e){a.e(e)}finally{a.f()}}}return!1}},{key:"getIdFromAjax",value:function(e){return console.warn("getIdFromAjax must be implemented by child class"),null}},{key:"findParentContainer",value:function(e){return console.warn("findParentContainer must be implemented by child class"),null}},{key:"getIdFromHTML",value:function(e){return console.warn("getIdFromHTML must be implemented by child class"),null}}],[{key:"createExtractor",value:function(e){switch(e){case"action=nf_ajax_submit":return new ApbctNinjaFormsVisibleFields;case"action=mailpoet":return new ApbctMailpoetVisibleFields;default:return null}}}]))(),ApbctNinjaFormsVisibleFields=(()=>{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/"id"\s*:\s*"?(\d+)"/,/form_id\s*[:\s]*"?(\d+)"/,/nf-form-(\d+)/,/"id":(\d+)/];t{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/form_id\s*[:\s]*"?(\d+)"/,/data\[form_id\]=(\d+)/,/form_id=(\d+)/];t_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"wrappers",[]),this.wrappers=this.findWrappers(),this.wrappers.length<1||this.checkBot()},[{key:"findWrappers",value:function(){return document.querySelectorAll("div.ct-encoded-form-wrapper")}},{key:"checkBot",value:function(){var t=this,e={post_url:document.location.href,referrer:document.referrer};+ctPublic.bot_detector_enabled?e.event_token=apbctLocalStorage.get("bot_detector_event_token"):e.event_javascript_data=getJavascriptClientData(),"rest"===ctPublicFunctions.data__ajax_type?apbct_public_sendREST("force_protection_check_bot",{data:e,method:"POST",callback:function(e){return t.checkBotCallback(e)}}):"admin_ajax"===ctPublicFunctions.data__ajax_type&&(e.action="apbct_force_protection_check_bot",apbct_public_sendAJAX(e,{callback:function(e){return t.checkBotCallback(e)}}))}},{key:"checkBotCallback",value:function(e){if(e.data&&e.data.status&&200!==e.data.status)console.log("ApbctForceProtection connection error occurred"),this.decodeForms();else{if("string"==typeof e)try{e=JSON.parse(e)}catch(e){return console.log("ApbctForceProtection decodeForms error",e),void this.decodeForms()}"object"===_typeof(e)&&e.allow&&1===e.allow?(this.decodeForms(),document.dispatchEvent(new Event("apbctForceProtectionAllowed"))):this.showMessageForBot(e.message)}}},{key:"decodeForms",value:function(){var n;this.wrappers.forEach(function(e){n=e.querySelector("div.ct-encoded-form").dataset.encodedForm;try{var t;n&&"string"==typeof n&&(t=decodeURIComponent(n),e.outerHTML=atob(t))}catch(e){console.log(e)}})}},{key:"showMessageForBot",value:function(t){this.wrappers.forEach(function(e){e.querySelector("div.ct-encoded-form").dataset.encodedForm&&(e.outerHTML='
'+t+"
")})}}]))(),apbctForceProtectionIsInitialized=!1;function apbctForceProtect(){apbctForceProtectionIsInitialized||(apbctForceProtectionIsInitialized=!0,+ctPublic.settings__forms__force_protection&&void 0!==ApbctForceProtection&&new ApbctForceProtection)}function ctCheckInternal(t){var e,n={},o=t.elements;for(e in o)"submit"!==o[e].type&&void 0!==o[e].value&&""!==o[e].value&&(n[o[e].name]=t.elements[e].value);n.action="ct_check_internal",apbct_public_sendAJAX(n,{url:ctPublicFunctions._ajax_url,callback:function(e){if(!0!==e.success)return alert(e.data),!1;t.origSubmit()}})}ctPublic.data__key_is_ok&&("loading"!==document.readyState?apbctForceProtect():apbct_attach_event_handler(document,"DOMContentLoaded",apbctForceProtect));var ctInternalFormsIsInitialized=!1;function ctProtectInternalForms(){for(var e,t="",n="",o=0;o{function o(){_classCallCheck(this,o)}return _createClass(o,null,[{key:"getFrontendDataLog",value:function(){var e=("undefined"!=typeof ctPublicFunctions&&ctPublicFunctions.cookiePrefix?ctPublicFunctions.cookiePrefix:"")+o.LOG_KEY,t=o.LOG_KEY;if(void 0!==apbctLocalStorage&&apbctLocalStorage.get){var n=apbctLocalStorage.get(e)||apbctLocalStorage.get(t)||null;if(n&&"string"==typeof n)try{return JSON.parse(n)}catch(e){return""}return n}n=(n=localStorage.getItem(e))||localStorage.getItem(t)||null;try{return"string"==typeof n?JSON.parse(n):n}catch(e){return""}}},{key:"asDTO",value:function(){return{botd_logic_loaded:o.botdLogicLoaded,botd_wrapper_loaded:o.botdWrapperLoaded,frontend_data_log:"",transport_enabled:1}}},{key:"detectScripts",value:function(){if(o.botdWrapperLoaded&&o.botdLogicLoaded)return!0;for(var e=document.getElementsByTagName("script"),t=0;t .comment-body *[class*="comment-author"]',document.querySelector(".apbct-trp .comment-author .comment-author-link")&&(e='.apbct-trp *[class*="comment-author-link"]'),0!==(e=document.querySelectorAll(e+',.apbct-trp > .wp-block-group *[class*="comment-author"],.apbct-trp *[class*="review__author"],.apbct-trp td[class*="column-author"] > strong')).length)&&(e.forEach(function(e,t){var n,o,a,r,c,i,l,s,u;e.className.indexOf("review")<0&&"undefined"==typeof pagenow&&e.parentElement.className.indexOf("group")<0&&"DIV"!=e.tagName||e.querySelector(".comment-metadata")||((n=document.createElement("div")).setAttribute("class","apbct-real-user-badge"),(o=document.createElement("img")).setAttribute("src",d.imgPersonUrl),o.setAttribute("class","apbct-real-user-popup-img"),(a=document.createElement("div")).setAttribute("class","apbct-real-user-popup"),(i=document.createElement("strong")).append(d.phrases.trpHeading),(r=document.createElement("div")).setAttribute("class","apbct-real-user-popup-content_row"),(c=document.createElement("div")).append(" "),c.append(i),c.append(d.phrases.trpContent1),(i=document.createElement("div")).style.display="flex",i.style.gap="5px",(l=document.createElement("div")).append(d.phrases.trpContent2),i.append(l),p&&(l=document.createElement("div"),(s=document.createElement("a")).setAttribute("href",d.trpContentLink),s.setAttribute("target","_blank"),(u=document.createElement("img")).setAttribute("src",ctAdminCommon.new_window_gif),u.setAttribute("alt","New window"),u.setAttribute("style","padding-top:3px"),s.append(u),l.append(s),i.append(l)),r.append(c,i),a.append(r),n.append(o),e.append(n),e.append(a))}),document.querySelectorAll(".apbct-real-user-badge").forEach(function(o){var a=void 0,e=(t.body.addEventListener("click",function(e){-1==e.target.className.indexOf("apbct-real-user")&&-1==e.target.parentElement.className.indexOf("apbct-real-user")&&closeAllPopupTRP()}),o.addEventListener("click",function(){var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.toggle("visible")}),o.addEventListener("mouseenter",function(){closeAllPopupTRP();var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.add("visible")}),o.addEventListener("mouseleave",function(){var t=this;a=setTimeout(function(){var e=t.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.nextElementSibling);e.addEventListener("mouseenter",function(){clearTimeout(a),e.classList.add("visible")}),e.addEventListener("mouseleave",function(){a=setTimeout(function(){e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.addEventListener("touchend",function(){var n=this;a=setTimeout(function(){var e=n.nextElementSibling,t=window.getSelection();e&&t&&e.classList.contains("apbct-real-user-popup")&&0===t.toString().length?e.classList.remove("visible"):(clearTimeout(a),document.addEventListener("selectionchange",function e(){var t=window.getSelection();t&&0===t.toString().length&&(a=setTimeout(function(){var e=o.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},3e3),document.removeEventListener("selectionchange",e))}))},3e3)})})))}); \ No newline at end of file +function _callSuper(e,t,n){return t=_getPrototypeOf(t),_possibleConstructorReturn(e,_isNativeReflectConstruct()?Reflect.construct(t,n||[],_getPrototypeOf(e).constructor):t.apply(e,n))}function _possibleConstructorReturn(e,t){if(t&&("object"==_typeof(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_isNativeReflectConstruct=function(){return!!e})()}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function ownKeys(t,e){var n,o=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,n)),o}function _objectSpread(t){for(var e=1;et||r=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var n;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n{var n,e;if(r.data.forEach(function(e){e.encoded_email===a[t].dataset.originalString&&(n=e)}),!1===n.is_allowed)return{v:void 0};if(void 0===a[t].href||0!==a[t].href.indexOf("mailto:")&&0!==a[t].href.indexOf("tel:"))a[t].classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a[t])},2e3);else{if(0===a[t].href.indexOf("mailto:"))e="mailto:";else{if(0!==a[t].href.indexOf("tel:"))return 0;e="tel:"}var o=a[t].href.replace(e,"");ctReplaceInTextNodes(a[t],o,ctHtmlToText(n.decoded_email)),a[t].href=e+n.decoded_email,a[t].querySelectorAll("span.apbct-email-encoder").forEach(function(t){var n="";r.data.forEach(function(e){e.encoded_email===t.dataset.originalString&&(n=e.decoded_email)}),t.textContent=ctHtmlToText(n)})}a[t].removeEventListener("click",ctFillDecodedEmailHandler)})(t))&&e)return e.v}else{var n=r.data[0];a.classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a)},2e3),a.removeEventListener("click",ctFillDecodedEmailHandler)}}function ctReplaceInTextNodes(e,t,n){if(t){e.normalize();for(var o,a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);o=a.nextNode();)if(-1!==o.nodeValue.indexOf(t))return void(o.nodeValue=o.nodeValue.replace(t,function(){return n}))}}function ctHtmlToText(e){return e?(new DOMParser).parseFromString(String(e),"text/html").documentElement.textContent:""}function ctProcessDecodedDataResult(e,t){t.setAttribute("title",""),t.removeAttribute("style"),ctFillDecodedEmail(t,e.decoded_email)}function ctFillDecodedEmail(e,t){e.innerHTML=e.innerHTML.replace(/.+?(
)/,t+"$1")}var ctEmailDecoderIsInitialized=!1,cleantalkModal=(document.addEventListener("DOMContentLoaded",function(){if(!ctEmailDecoderIsInitialized){ctEmailDecoderIsInitialized=!0;var e=document.querySelectorAll("[data-original-string]");if("undefined"!=typeof ctPublic&&(ctPublic.encodedEmailNodes=e),e.length)for(var t=0;t$1')):(r.innerHTML="Loading...",t&&this.load(t)),r.setAttribute("id","cleantalk-modal-content"),n.append(r),this.opened=!0},confirm:function(e){var t,n=1_createClass(function e(t){_classCallCheck(this,e),_defineProperty(this,"ajax_parameters",{}),_defineProperty(this,"restParameters",{}),_defineProperty(this,"selector",null),_defineProperty(this,"elements",[]),_defineProperty(this,"eventCallback",void 0),_defineProperty(this,"eventSelector",void 0),_defineProperty(this,"event",void 0),this.select(t)},[{key:"select",value:function(e){return e instanceof HTMLCollection?(this.selector=null,this.elements=[],this.elements=Array.prototype.slice.call(e)):"object"===_typeof(e)?(this.selector=null,this.elements=[],this.elements[0]=e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect(),this}},{key:"addElement",value:function(e){"object"===_typeof(e)?this.elements.push(e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect()}},{key:"push",value:function(e){this.elements.push(e)}},{key:"reduce",value:function(){this.elements=this.elements.slice(0,-1)}},{key:"deselect",value:function(){this.elements=[]}},{key:"css",value:function(e,t){if(t=t||!1,"object"===_typeof(e)){for(var n in e)if(Object.hasOwn(e,n))for(var o=n.replace(/([-_][a-z])/g,function(e){return e.toUpperCase().replace("-","").replace("_","")}),a=0;a(e=document.createElement(e).constructor,!Boolean(~[HTMLElement,HTMLUnknownElement].indexOf(e))))(t)?n||e.tagName.toLowerCase()===t.toLowerCase():t.match(/^[a-z]/)?n||Boolean(e[t]):n||(null!==this.selector?null!==document.querySelector(this.selector+t):this.isWithoutSelector(e,t)):n}},{key:"isWithoutSelector",value:function(e,t){var n,o=!1,a=_createForOfIteratorHelper(document.querySelectorAll(t));try{for(a.s();!(n=a.n()).done;)o=o||e===n.value}catch(e){a.e(e)}finally{a.f()}return o}},{key:"filter",value:function(e){this.selector=null;for(var t=this.elements.length-1;0<=t;t--)this.isElem(this.elements[t],e)||this.elements.splice(Number(t),1);return this}},{key:"parent",value:function(e){return this.select(this.elements[0].parentElement),void 0===e||this.is(e)||this.deselect(),this}},{key:"parents",value:function(e){for(this.select(this.elements[0]);null!==this.elements[this.elements.length-1].parentElement;)this.push(this.elements[this.elements.length-1].parentElement);return this.elements.splice(0,1),void 0!==e&&this.filter(e),this}},{key:"children",value:function(e){return this.select(this.elements[0].children),void 0!==e&&this.filter(e),this}},{key:"siblings",value:function(e){var t=this.elements[0];return this.parent(),this.children(e),this.elements.splice(this.elements.indexOf(t),1),this}},{key:"remove",value:function(){var e,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(e=t.n()).done;)e.value.remove()}catch(e){t.e(e)}finally{t.f()}}},{key:"after",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.after(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"append",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.append(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"fadeIn",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity+(new Date-n)/o,n=+new Date,+t.style.opacity<1&&(window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16))}var t=a.value,n=(t.style.opacity=0,t.style.display="block",+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}},{key:"fadeOut",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity-(new Date-n)/o,n=+new Date,0<+t.style.opacity?window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16):t.style.display="none"}var t=a.value,n=(t.style.opacity=1,+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}}]))());function apbct(e){return(new ApbctCore).select(e)}Object.prototype.hasOwn||Object.defineProperty(Object.prototype,"hasOwn",{value:function(e){return Object.prototype.hasOwnProperty.call(this,e)},enumerable:!1,configurable:!0,writable:!0});var ApbctFetchProxyCallbacks={mailchimpBlock:function(e){try{for(var t=localStorage.length-1;0<=t;t--){var n=localStorage.key(t);n&&-1!==n.indexOf("mcforms")&&localStorage.removeItem(n)}}catch(e){console.warn("Error clearing localStorage by mcforms mask:",e)}}},ApbctFetchProxyConfig={mailchimp:{selector:".mcforms-wrapper",urlPattern:"mcf-integrations-mcmktg.mlchmpcompprduse2.iks2.a.intuit.com/gateway/receive",externalForm:!0,action:"cleantalk_force_mailchimp_shadowroot_check",callbackAllow:!1,callbackBlock:ApbctFetchProxyCallbacks.mailchimpBlock},otterform:{selector:".otter-form__container",urlPattern:"otter/v1/form/frontend",externalForm:!1,action:"cleantalk_force_otterform_check",callbackAllow:!1,callbackBlock:!1},elfsight:{selector:'[class*="elfsight-app"]',urlPattern:"data.elfsight.com/public/resources/form-submissions",externalForm:!0,action:"cleantalk_force_elfsight_check",payloadKey:"elfsight_payload",callbackAllow:!1,callbackBlock:!1}},ApbctFetchProxyProtection=(()=>{return _createClass(function e(){_classCallCheck(this,e),this.config=ApbctFetchProxyConfig},[{key:"findMatchingConfig",value:function(e){for(var t="string"==typeof e?e:null!=e&&"string"==typeof e.href?e.href:"",n=0,o=Object.entries(this.config);n_createClass(function e(){_classCallCheck(this,e)},[{key:"attachEventTokenToMultipageGravityForms",value:function(){document.addEventListener("gform_page_loaded",function(){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||"function"!=typeof setEventTokenField||"function"!=typeof botDetectorLocalStorage||setEventTokenField(botDetectorLocalStorage.get("bot_detector_event_token"))})}},{key:"attachEventTokenToWoocommerceGetRequestAddToCart",value:function(){ctPublic.wc_ajax_add_to_cart||document.querySelectorAll("a.add_to_cart_button:not(.product_type_variable):not(.wc-interactive)").forEach(function(o){o.addEventListener("click",function(e){var t=o.getAttribute("href"),n=apbctLocalStorage.get("bot_detector_event_token");n&&(-1===t.indexOf("?")?t+="?":t+="&",o.setAttribute("href",t+="ct_bot_detector_event_token="+n))})})}},{key:"restartBotDetectorEventTokenAttach",value:function(){var e,t=0_createClass(function e(){_classCallCheck(this,e)},[{key:"attachHiddenFieldsToForms",value:function(e){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||+ctPublic.bot_detector_enabled&&!e||(ctNoCookieAttachHiddenFieldsToForms(),document.addEventListener("gform_page_loaded",ctNoCookieAttachHiddenFieldsToForms))}},{key:"attachVisibleFieldsToForm",value:function(e,t){var n=document.createElement("input"),t=(n.setAttribute("type","hidden"),n.setAttribute("id","apbct_visible_fields_"+t),n.setAttribute("name","apbct_visible_fields"),{});t[0]=this.collectVisibleFields(e),n.value=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),e.append(n)}},{key:"attachVisibleFieldsDuringSubmit",value:function(e,t){"native"!==ctPublic.data__cookies_type&&void 0!==e.target.ctFormIndex&&this.setVisibleFieldsCookie(this.collectVisibleFields(t),e.target.ctFormIndex)}},{key:"constructNoCookieHiddenField",value:function(e){var t="hidden",e=("submit"===e&&(t="submit"),""),n=getCleanTalkStorageDataArray(),n=JSON.stringify(n);return n="_ct_no_cookie_data_"+btoa(unescape(encodeURIComponent(n))),(e=document.createElement("input")).setAttribute("name","ct_no_cookie_hidden_field"),e.setAttribute("value",n),e.setAttribute("type",t),e.classList.add("apbct_special_field"),e.classList.add("ct_no_cookie_hidden_field"),e}},{key:"attachNoCookieDuringSubmit",value:function(e){"none"===ctPublic.data__cookies_type&&e.target&&e.target.action&&-1!==e.target.action.toString().indexOf("mailpoet_subscription_form")&&(window.XMLHttpRequest.prototype.send=function(e){var t,n;+ctPublic.bot_detector_enabled?(t=(new ApbctHandler).toolGetEventToken())&&(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+("data%5Bct_bot_detector_event_token%5D="+t+"&")+e)):(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+e)),setTimeout(function(){window.XMLHttpRequest.prototype.send=defaultSend},0)})}},{key:"setVisibleFieldsCookie",value:function(e,t){var n="object"===_typeof(e)&&null!==e?e:{};if("native"===ctPublic.data__cookies_type)for(var o in n){if(10{function p(){_classCallCheck(this,p)}return _createClass(p,[{key:"excludeForm",value:function(e){return!!this.checkHiddenFieldsExclusions(e,"visible_fields")||!!(e.querySelector('input[name="wspsc_add_cart_submit"]')||e.querySelector('input[name="option"][value="com_vikrentcar"]')||e.querySelector('input[name="option"][value="com_vikbooking"]'))||void 0!==e.elements.apbct_visible_fields&&0{var n=_asyncToGenerator(_regenerator().m(function e(t,n){var o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(+ctPublic.settings__forms__check_external){e.n=1;break}return e.a(2,!1);case 1:o=_createForOfIteratorHelper(r),e.p=2,o.s();case 3:if((a=o.n()).done)e.n=6;else{if((a=a.value).matches(t,n))return a=a.getForm(),e.n=4,c(a);e.n=5}break;case 4:if(e.v)return e.a(2,!0);e.n=5;break;case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,a=e.v,o.e(a);case 8:return e.p=8,o.f(),e.f(8);case 9:return e.a(2,!1)}},e,null,[[2,7,8,9]])}));return function(e,t){return n.apply(this,arguments)}})(),r=[{name:"bitrix24",matches:function(e,t){return document.querySelector(".b24-form")&&e.includes("bitrix/services/main/ajax.php?action=crm.site.form.fill")&&t[1].body instanceof FormData},getForm:function(){return document.querySelector(".b24-form form")}},{name:"sender",matches:function(e,t){return e.includes("stats.sender.net/forms")&&"string"==typeof t[1].body},getForm:function(){for(var e=document.querySelectorAll("iframe"),t=0;t{var t=_asyncToGenerator(_regenerator().m(function e(t){var n,o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}return e.a(2,!1);case 1:return n=i(t),b=!0,e.p=2,e.n=3,new Promise(function(e,t){apbct_public_sendAJAX(n,{async:!0,callback:e,onErrorCallback:t})});case 3:return o=e.v,(a=void 0!==o.apbct&&+o.apbct.blocked||void 0!==o.data&&void 0!==o.data.message)&&(new ApbctShowForbidden).parseBlockMessage(o),e.a(2,a);case 4:return e.p=4,e.a(2,!1);case 5:return e.p=5,b=!1,e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(e){return t.apply(this,arguments)}})(),i=function(e){var t,n={action:"cleantalk_force_ajax_check"},o=_createForOfIteratorHelper(e.elements);try{for(o.s();!(t=o.n()).done;){var a=t.value;a.name&&(n[a.name]=a.value)}}catch(e){o.e(e)}finally{o.f()}return+ctPublic.bot_detector_enabled?n.ct_bot_detector_event_token=apbctLocalStorage.get("bot_detector_event_token"):n.ct_no_cookie_hidden_field=getNoCookieData(),n};window.fetch=_asyncToGenerator(_regenerator().m(function e(){var t,n,o,a,r,c,i,l,s,u,d,p=arguments;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:for(t=p.length,n=new Array(t),o=0;o!(!t||"string"!=typeof t)&&["google.com/recaptcha","gstatic.com/recaptcha","recaptcha.google.com","recaptcha.net","www.google.com/recaptcha","apis.google.com","paypal.com","api.paypal.com","www.paypal.com","js.stripe.com","api.stripe.com","checkout.stripe.com","api.doboard.com"].some(function(e){return t.includes(e)}))(a="string"==typeof n[0]?n[0]:(null==(a=n[0])?void 0:a.url)||""))return e.a(2,y.apply(this,n));e.n=2;break;case 2:if(n&&n[0]&&n[1]&&n[1].body){e.n=3;break}return e.a(2,y.apply(this,n));case 3:return e.n=4,_.processFetch(n);case 4:if(!0===e.v)return e.a(2,Promise.reject(new Error("Forbidden")));e.n=5;break;case 5:if(0{try{return n[0].includes(new URL(ctPublicFunctions._rest_url).pathname+"metform/")}catch(e){}})()))try{n[1].body=m(n[1].body,f(+ctPublic.bot_detector_enabled))}catch(e){}if(0{var t=e.value;"undefined"!=typeof ctPublic&&1==+ctPublic.settings__forms__search_test&&null!==t.getAttribute("apbct-form-sign")&&"native_search"===t.getAttribute("apbct-form-sign")&&(t.apbctSearchPrevOnsubmit=t.onsubmit,t.onsubmit=function(e){return n.searchFormHandler(e,t)})})()}catch(e){t.e(e)}finally{t.f()}}},{key:"searchFormHandler",value:function(e,t){try{var n,o,a,r=t.querySelector('[name*="apbct__email_id__"]'),c=null,i=(null!==r&&null!==r.value&&(c=r.value),getCleanTalkStorageDataArray()),l=apbctLocalStorage.get("bot_detector_event_token");null===i&&null===r&&null===l||(e.preventDefault(),n=function(){null!==r&&r.parentNode.removeChild(r),"function"==typeof t.apbctSearchPrevOnsubmit?t.apbctSearchPrevOnsubmit():HTMLFormElement.prototype.submit.call(t)},o=i,null!==c&&(o.apbct_search_form__honeypot_value=c),o.ct_bot_detector_event_token=l,"string"==typeof o.apbct_pixel_url&&-1!==o.apbct_pixel_url.indexOf("%3A")&&(o.apbct_pixel_url=decodeURIComponent(o.apbct_pixel_url)),void 0!==(a=JSON.stringify(o))&&0!==a.length?ctSetAlternativeCookie(a,{callback:n,onErrorCallback:n,forceAltCookies:!0}):n())}catch(e){console.warn("APBCT search form onsubmit handler error. "+e)}}},{key:"toolForAntiCrawlerCheckDuringBotDetector",value:function(){var e=setInterval(function(){localStorage.bot_detector_event_token&&(ctSetCookie("apbct_bot_detector_exist","1","3600"),clearInterval(e))},500)}},{key:"toolGetEventToken",value:function(){var t=localStorage.getItem("bot_detector_event_token");try{t=JSON.parse(t)}catch(e){t=!1}return!(null===t||!1===t||!t.hasOwnProperty("value")||""===t.value)&&t.value}}])})(),ApbctShowForbidden=(()=>_createClass(function e(){_classCallCheck(this,e)},[{key:"prepareBlockForAjaxForms",value:function(){var o=function(e){if(e.responseText&&-1!==e.responseText.indexOf('"apbct')&&-1===e.responseText.indexOf("DOCTYPE"))try{this.parseBlockMessage(JSON.parse(e.responseText))}catch(e){console.log(e.toString())}}.bind(this);"undefined"!=typeof jQuery?"function"!=typeof jQuery(document).ajaxComplete()?jQuery(document).on("ajaxComplete",function(e,t,n){o(t)}):jQuery(document).ajaxComplete(function(e,t,n){o(t)}):"undefined"!=typeof XMLHttpRequest&&document.addEventListener("readystatechange",function(e){4===e.target.readyState&&o(e.target)})}},{key:"parseBlockMessage",value:function(e){var t,n="";if((void 0!==e.apbct&&(e=e.apbct).blocked&&(n=e.comment),n=void 0!==e.data&&void 0!==(e=e.data).message?e.message:n)&&(document.dispatchEvent(new CustomEvent("apbctAjaxBockAlert",{bubbles:!0,detail:{message:n}})),cleantalkModal.loaded=n,cleantalkModal.open(),1==+e.stop_script&&(window.stop(),e.integration&&"NEXForms"===e.integration&&((t=document.querySelector("form.submit-nex-form button.nex-submit"))&&(t.disabled=!0,t.style.opacity="0.5",t.style.cursor="not-allowed",t.style.pointerEvents="none",t.style.backgroundColor="#ccc",t.style.color="#fff"),t=document.querySelector("div.nex_success_message"))&&(t.style.display="none"),e.integration)&&"ElfsightForm"===e.integration)){var o=[document];try{document.querySelectorAll("iframe").forEach(function(e){try{e.contentDocument&&o.push(e.contentDocument)}catch(e){}})}catch(e){}for(var a=0,r=o;a_createClass(function e(){_classCallCheck(this,e)},[{key:"extract",value:function(e){if(e&&"string"==typeof e){try{e=decodeURIComponent(e)}catch(e){return!1}var t=document.querySelectorAll("form"),n=this.getIdFromAjax(e);if(n){var o,a=_createForOfIteratorHelper(t);try{for(a.s();!(o=a.n()).done;){var r=o.value,c=this.findParentContainer(r);if(c){var i=this.getIdFromHTML(c);if(i===n){var l=c.querySelector("input[id^=apbct_visible_fields_]");if(null!=l&&l.value)return l.value}}}}catch(e){a.e(e)}finally{a.f()}}}return!1}},{key:"getIdFromAjax",value:function(e){return console.warn("getIdFromAjax must be implemented by child class"),null}},{key:"findParentContainer",value:function(e){return console.warn("findParentContainer must be implemented by child class"),null}},{key:"getIdFromHTML",value:function(e){return console.warn("getIdFromHTML must be implemented by child class"),null}}],[{key:"createExtractor",value:function(e){switch(e){case"action=nf_ajax_submit":return new ApbctNinjaFormsVisibleFields;case"action=mailpoet":return new ApbctMailpoetVisibleFields;default:return null}}}]))(),ApbctNinjaFormsVisibleFields=(()=>{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/"id"\s*:\s*"?(\d+)"/,/form_id\s*[:\s]*"?(\d+)"/,/nf-form-(\d+)/,/"id":(\d+)/];t{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/form_id\s*[:\s]*"?(\d+)"/,/data\[form_id\]=(\d+)/,/form_id=(\d+)/];t_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"wrappers",[]),this.wrappers=this.findWrappers(),this.wrappers.length<1||this.checkBot()},[{key:"findWrappers",value:function(){return document.querySelectorAll("div.ct-encoded-form-wrapper")}},{key:"checkBot",value:function(){var t=this,e={post_url:document.location.href,referrer:document.referrer};+ctPublic.bot_detector_enabled?e.event_token=apbctLocalStorage.get("bot_detector_event_token"):e.event_javascript_data=getJavascriptClientData(),"rest"===ctPublicFunctions.data__ajax_type?apbct_public_sendREST("force_protection_check_bot",{data:e,method:"POST",callback:function(e){return t.checkBotCallback(e)}}):"admin_ajax"===ctPublicFunctions.data__ajax_type&&(e.action="apbct_force_protection_check_bot",apbct_public_sendAJAX(e,{callback:function(e){return t.checkBotCallback(e)}}))}},{key:"checkBotCallback",value:function(e){if(e.data&&e.data.status&&200!==e.data.status)console.log("ApbctForceProtection connection error occurred"),this.decodeForms();else{if("string"==typeof e)try{e=JSON.parse(e)}catch(e){return console.log("ApbctForceProtection decodeForms error",e),void this.decodeForms()}"object"===_typeof(e)&&e.allow&&1===e.allow?(this.decodeForms(),document.dispatchEvent(new Event("apbctForceProtectionAllowed"))):this.showMessageForBot(e.message)}}},{key:"decodeForms",value:function(){var n;this.wrappers.forEach(function(e){n=e.querySelector("div.ct-encoded-form").dataset.encodedForm;try{var t;n&&"string"==typeof n&&(t=decodeURIComponent(n),e.outerHTML=atob(t))}catch(e){console.log(e)}})}},{key:"showMessageForBot",value:function(t){this.wrappers.forEach(function(e){e.querySelector("div.ct-encoded-form").dataset.encodedForm&&(e.outerHTML='
'+t+"
")})}}]))(),apbctForceProtectionIsInitialized=!1;function apbctForceProtect(){apbctForceProtectionIsInitialized||(apbctForceProtectionIsInitialized=!0,+ctPublic.settings__forms__force_protection&&void 0!==ApbctForceProtection&&new ApbctForceProtection)}function ctCheckInternal(t){var e,n={},o=t.elements;for(e in o)"submit"!==o[e].type&&void 0!==o[e].value&&""!==o[e].value&&(n[o[e].name]=t.elements[e].value);n.action="ct_check_internal",apbct_public_sendAJAX(n,{url:ctPublicFunctions._ajax_url,callback:function(e){if(!0!==e.success)return alert(e.data),!1;t.origSubmit()}})}ctPublic.data__key_is_ok&&("loading"!==document.readyState?apbctForceProtect():apbct_attach_event_handler(document,"DOMContentLoaded",apbctForceProtect));var ctInternalFormsIsInitialized=!1;function ctProtectInternalForms(){for(var e,t="",n="",o=0;o{function o(){_classCallCheck(this,o)}return _createClass(o,null,[{key:"getFrontendDataLog",value:function(){var e=("undefined"!=typeof ctPublicFunctions&&ctPublicFunctions.cookiePrefix?ctPublicFunctions.cookiePrefix:"")+o.LOG_KEY,t=o.LOG_KEY;if("undefined"!=typeof apbctLocalStorage&&apbctLocalStorage.get){var n=apbctLocalStorage.get(e)||apbctLocalStorage.get(t)||null;if(n&&"string"==typeof n)try{return JSON.parse(n)}catch(e){return""}return n}n=(n=localStorage.getItem(e))||localStorage.getItem(t)||null;try{return"string"==typeof n?JSON.parse(n):n}catch(e){return""}}},{key:"asDTO",value:function(){return{botd_logic_loaded:o.botdLogicLoaded,botd_wrapper_loaded:o.botdWrapperLoaded,frontend_data_log:"",transport_enabled:1}}},{key:"detectScripts",value:function(){if(o.botdWrapperLoaded&&o.botdLogicLoaded)return!0;for(var e=document.getElementsByTagName("script"),t=0;t .comment-body *[class*="comment-author"]',document.querySelector(".apbct-trp .comment-author .comment-author-link")&&(e='.apbct-trp *[class*="comment-author-link"]'),0!==(e=document.querySelectorAll(e+',.apbct-trp > .wp-block-group *[class*="comment-author"],.apbct-trp *[class*="review__author"],.apbct-trp td[class*="column-author"] > strong')).length)&&(e.forEach(function(e,t){var n,o,a,r,c,i,l,s,u;e.className.indexOf("review")<0&&"undefined"==typeof pagenow&&e.parentElement.className.indexOf("group")<0&&"DIV"!=e.tagName||e.querySelector(".comment-metadata")||((n=document.createElement("div")).setAttribute("class","apbct-real-user-badge"),(o=document.createElement("img")).setAttribute("src",d.imgPersonUrl),o.setAttribute("class","apbct-real-user-popup-img"),(a=document.createElement("div")).setAttribute("class","apbct-real-user-popup"),(i=document.createElement("strong")).append(d.phrases.trpHeading),(r=document.createElement("div")).setAttribute("class","apbct-real-user-popup-content_row"),(c=document.createElement("div")).append(" "),c.append(i),c.append(d.phrases.trpContent1),(i=document.createElement("div")).style.display="flex",i.style.gap="5px",(l=document.createElement("div")).append(d.phrases.trpContent2),i.append(l),p&&(l=document.createElement("div"),(s=document.createElement("a")).setAttribute("href",d.trpContentLink),s.setAttribute("target","_blank"),(u=document.createElement("img")).setAttribute("src",ctAdminCommon.new_window_gif),u.setAttribute("alt","New window"),u.setAttribute("style","padding-top:3px"),s.append(u),l.append(s),i.append(l)),r.append(c,i),a.append(r),n.append(o),e.append(n),e.append(a))}),document.querySelectorAll(".apbct-real-user-badge").forEach(function(o){var a=void 0,e=(t.body.addEventListener("click",function(e){-1==e.target.className.indexOf("apbct-real-user")&&-1==e.target.parentElement.className.indexOf("apbct-real-user")&&closeAllPopupTRP()}),o.addEventListener("click",function(){var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.toggle("visible")}),o.addEventListener("mouseenter",function(){closeAllPopupTRP();var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.add("visible")}),o.addEventListener("mouseleave",function(){var t=this;a=setTimeout(function(){var e=t.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.nextElementSibling);e.addEventListener("mouseenter",function(){clearTimeout(a),e.classList.add("visible")}),e.addEventListener("mouseleave",function(){a=setTimeout(function(){e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.addEventListener("touchend",function(){var n=this;a=setTimeout(function(){var e=n.nextElementSibling,t=window.getSelection();e&&t&&e.classList.contains("apbct-real-user-popup")&&0===t.toString().length?e.classList.remove("visible"):(clearTimeout(a),document.addEventListener("selectionchange",function e(){var t=window.getSelection();t&&0===t.toString().length&&(a=setTimeout(function(){var e=o.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},3e3),document.removeEventListener("selectionchange",e))}))},3e3)})})))}); diff --git a/js/apbct-public-bundle_full-protection_gathering.min.js b/js/apbct-public-bundle_full-protection_gathering.min.js index c6827b78f..885c10839 100644 --- a/js/apbct-public-bundle_full-protection_gathering.min.js +++ b/js/apbct-public-bundle_full-protection_gathering.min.js @@ -1 +1 @@ -function ownKeys(t,e){var n,o=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,n)),o}function _objectSpread(t){for(var e=1;et||c=e.length?{done:!0}:{done:!1,value:e[c++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var n;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n{var n,e;if(c.data.forEach(function(e){e.encoded_email===a[t].dataset.originalString&&(n=e)}),!1===n.is_allowed)return{v:void 0};if(void 0===a[t].href||0!==a[t].href.indexOf("mailto:")&&0!==a[t].href.indexOf("tel:"))a[t].classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a[t])},2e3);else{if(0===a[t].href.indexOf("mailto:"))e="mailto:";else{if(0!==a[t].href.indexOf("tel:"))return 0;e="tel:"}var o=a[t].href.replace(e,"");ctReplaceInTextNodes(a[t],o,ctHtmlToText(n.decoded_email)),a[t].href=e+n.decoded_email,a[t].querySelectorAll("span.apbct-email-encoder").forEach(function(t){var n="";c.data.forEach(function(e){e.encoded_email===t.dataset.originalString&&(n=e.decoded_email)}),t.textContent=ctHtmlToText(n)})}a[t].removeEventListener("click",ctFillDecodedEmailHandler)})(t))&&e)return e.v}else{var n=c.data[0];a.classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a)},2e3),a.removeEventListener("click",ctFillDecodedEmailHandler)}}function ctReplaceInTextNodes(e,t,n){if(t){e.normalize();for(var o,a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);o=a.nextNode();)if(-1!==o.nodeValue.indexOf(t))return void(o.nodeValue=o.nodeValue.replace(t,function(){return n}))}}function ctHtmlToText(e){return e?(new DOMParser).parseFromString(String(e),"text/html").documentElement.textContent:""}function ctProcessDecodedDataResult(e,t){t.setAttribute("title",""),t.removeAttribute("style"),ctFillDecodedEmail(t,e.decoded_email)}function ctFillDecodedEmail(e,t){e.innerHTML=e.innerHTML.replace(/.+?(
)/,t+"$1")}var ctEmailDecoderIsInitialized=!1,cleantalkModal=(document.addEventListener("DOMContentLoaded",function(){if(!ctEmailDecoderIsInitialized){ctEmailDecoderIsInitialized=!0;var e=document.querySelectorAll("[data-original-string]");if("undefined"!=typeof ctPublic&&(ctPublic.encodedEmailNodes=e),e.length)for(var t=0;t$1')):(c.innerHTML="Loading...",t&&this.load(t)),c.setAttribute("id","cleantalk-modal-content"),n.append(c),this.opened=!0},confirm:function(e){var t,n=1_createClass(function e(t){_classCallCheck(this,e),_defineProperty(this,"ajax_parameters",{}),_defineProperty(this,"restParameters",{}),_defineProperty(this,"selector",null),_defineProperty(this,"elements",[]),_defineProperty(this,"eventCallback",void 0),_defineProperty(this,"eventSelector",void 0),_defineProperty(this,"event",void 0),this.select(t)},[{key:"select",value:function(e){return e instanceof HTMLCollection?(this.selector=null,this.elements=[],this.elements=Array.prototype.slice.call(e)):"object"===_typeof(e)?(this.selector=null,this.elements=[],this.elements[0]=e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect(),this}},{key:"addElement",value:function(e){"object"===_typeof(e)?this.elements.push(e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect()}},{key:"push",value:function(e){this.elements.push(e)}},{key:"reduce",value:function(){this.elements=this.elements.slice(0,-1)}},{key:"deselect",value:function(){this.elements=[]}},{key:"css",value:function(e,t){if(t=t||!1,"object"===_typeof(e)){for(var n in e)if(Object.hasOwn(e,n))for(var o=n.replace(/([-_][a-z])/g,function(e){return e.toUpperCase().replace("-","").replace("_","")}),a=0;a(e=document.createElement(e).constructor,!Boolean(~[HTMLElement,HTMLUnknownElement].indexOf(e))))(t)?n||e.tagName.toLowerCase()===t.toLowerCase():t.match(/^[a-z]/)?n||Boolean(e[t]):n||(null!==this.selector?null!==document.querySelector(this.selector+t):this.isWithoutSelector(e,t)):n}},{key:"isWithoutSelector",value:function(e,t){var n,o=!1,a=_createForOfIteratorHelper(document.querySelectorAll(t));try{for(a.s();!(n=a.n()).done;)o=o||e===n.value}catch(e){a.e(e)}finally{a.f()}return o}},{key:"filter",value:function(e){this.selector=null;for(var t=this.elements.length-1;0<=t;t--)this.isElem(this.elements[t],e)||this.elements.splice(Number(t),1);return this}},{key:"parent",value:function(e){return this.select(this.elements[0].parentElement),void 0===e||this.is(e)||this.deselect(),this}},{key:"parents",value:function(e){for(this.select(this.elements[0]);null!==this.elements[this.elements.length-1].parentElement;)this.push(this.elements[this.elements.length-1].parentElement);return this.elements.splice(0,1),void 0!==e&&this.filter(e),this}},{key:"children",value:function(e){return this.select(this.elements[0].children),void 0!==e&&this.filter(e),this}},{key:"siblings",value:function(e){var t=this.elements[0];return this.parent(),this.children(e),this.elements.splice(this.elements.indexOf(t),1),this}},{key:"remove",value:function(){var e,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(e=t.n()).done;)e.value.remove()}catch(e){t.e(e)}finally{t.f()}}},{key:"after",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.after(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"append",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.append(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"fadeIn",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity+(new Date-n)/o,n=+new Date,+t.style.opacity<1&&(window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16))}var t=a.value,n=(t.style.opacity=0,t.style.display="block",+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}},{key:"fadeOut",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity-(new Date-n)/o,n=+new Date,0<+t.style.opacity?window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16):t.style.display="none"}var t=a.value,n=(t.style.opacity=1,+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}}]))());function selectActualNonce(){var e="";return ctPublicFunctions.hasOwnProperty("_fresh_nonce")&&"string"==typeof ctPublicFunctions._fresh_nonce&&0{function o(e){for(var t in _classCallCheck(this,o),_defineProperty(this,"xhr",new XMLHttpRequest),_defineProperty(this,"method","POST"),_defineProperty(this,"url",""),_defineProperty(this,"async",!0),_defineProperty(this,"user",null),_defineProperty(this,"password",null),_defineProperty(this,"data",{}),_defineProperty(this,"button",null),_defineProperty(this,"spinner",null),_defineProperty(this,"progressbar",null),_defineProperty(this,"context",this),_defineProperty(this,"callback",null),_defineProperty(this,"onErrorCallback",null),_defineProperty(this,"responseType","json"),_defineProperty(this,"headers",{}),_defineProperty(this,"timeout",15e3),_defineProperty(this,"methods_to_convert_data_to_URL",["GET","HEAD"]),_defineProperty(this,"body",null),_defineProperty(this,"http_code",0),_defineProperty(this,"status_text",""),e)void 0!==this[t]&&(this[t]=e[t]);if(this.prepare(),Object.keys(this.data).length&&(this.deleteDoubleJSONEncoding(this.data),this.convertData()),!this.url)return console.log("%cXHR%c not URL provided","color: red; font-weight: bold;","color: grey; font-weight: normal;"),!1;this.xhr.open(this.method,this.url,this.async,this.user,this.password),this.setHeaders(),this.xhr.responseType=this.responseType,this.xhr.timeout=this.timeout,this.xhr.onreadystatechange=function(){this.isWpNonceError()?this.getFreshNonceAndRerunXHR(e):this.onReadyStateChange()}.bind(this),this.xhr.onload=function(){this.onLoad()}.bind(this),this.xhr.onprogress=function(e){this.onProgress(e)}.bind(this),this.xhr.onerror=function(){this.onError()}.bind(this),this.xhr.ontimeout=function(){this.onTimeout()}.bind(this),this.xhr.send(this.body)}return _createClass(o,[{key:"prepare",value:function(){this.button&&(this.button.setAttribute("disabled","disabled"),this.button.style.cursor="not-allowed"),this.spinner&&(this.spinner.style.display="inline")}},{key:"complete",value:function(){this.http_code=this.xhr.status,this.status_text=this.xhr.statusText,this.button&&(this.button.removeAttribute("disabled"),this.button.style.cursor="auto"),this.spinner&&(this.spinner.style.display="none"),this.progressbar&&this.progressbar.fadeOut("slow")}},{key:"onReadyStateChange",value:function(){null!==this.on_ready_state_change&&"function"==typeof this.on_ready_state_change&&this.on_ready_state_change()}},{key:"onProgress",value:function(e){null!==this.on_progress&&"function"==typeof this.on_progress&&this.on_progress()}},{key:"onError",value:function(){console.log("error"),this.complete(),this.error(this.http_code,this.status_text),null!==this.onErrorCallback&&"function"==typeof this.onErrorCallback&&this.onErrorCallback(this.status_text)}},{key:"onTimeout",value:function(){this.complete(),this.error(0,"timeout"),null!==this.onErrorCallback&&"function"==typeof this.onErrorCallback&&this.onErrorCallback("Timeout")}},{key:"onLoad",value:function(){if(this.complete(),"json"===this.responseType){if(null===this.xhr.response)return this.error(this.http_code,this.status_text,"No response"),!1;if(void 0!==this.xhr.response.error)return this.error(this.http_code,this.status_text,this.xhr.response.error),!1}null!==this.callback&&"function"==typeof this.callback&&this.callback.call(this.context,this.xhr.response,this.data)}},{key:"isWpNonceError",value:function(){var e=!1,t=!1;return 4==this.xhr.readyState&&(e="object"===_typeof(this.xhr.response)&&null!==this.xhr.response&&this.xhr.response.hasOwnProperty("data")&&this.xhr.response.data.hasOwnProperty("status")&&403===this.xhr.response.data.status,t="-1"===this.xhr.response&&403===this.xhr.status),e||t}},{key:"getFreshNonceAndRerunXHR",value:function(e){var t,n="";e.hasOwnProperty("headers")&&e.headers.hasOwnProperty("X-WP-Nonce")&&(n=e.headers["X-WP-Nonce"]),""!==(n=e.hasOwnProperty("data")&&e.data.hasOwnProperty("_ajax_nonce")?e.data._ajax_nonce:n)&&((t={method:"POST"}).data={spbc_remote_call_action:"get_fresh_wpnonce",plugin_name:"antispam",nonce_prev:n,initial_request_params:e},t.notJson=!0,t.url=ctPublicFunctions._ajax_url,t.callback=function(){for(var e=arguments.length,t=new Array(e),n=0;n{function o(){for(var e=arguments.length,t=new Array(e),n=0;n{function a(){for(var e=arguments.length,t=new Array(e),n=0;n{return _createClass(function e(){_classCallCheck(this,e),this.config=ApbctFetchProxyConfig},[{key:"findMatchingConfig",value:function(e){for(var t="string"==typeof e?e:null!=e&&"string"==typeof e.href?e.href:"",n=0,o=Object.entries(this.config);nMath.floor((new Date).getTime()/1e3)},isSet:function(e){return null!==localStorage.getItem(e)},delete:function(e){localStorage.removeItem(e)},getCleanTalkData:function(){for(var e={},t=0;t_createClass(function e(){_classCallCheck(this,e)},[{key:"attachEventTokenToMultipageGravityForms",value:function(){document.addEventListener("gform_page_loaded",function(){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||"function"!=typeof setEventTokenField||"function"!=typeof botDetectorLocalStorage||setEventTokenField(botDetectorLocalStorage.get("bot_detector_event_token"))})}},{key:"attachEventTokenToWoocommerceGetRequestAddToCart",value:function(){ctPublic.wc_ajax_add_to_cart||document.querySelectorAll("a.add_to_cart_button:not(.product_type_variable):not(.wc-interactive)").forEach(function(o){o.addEventListener("click",function(e){var t=o.getAttribute("href"),n=apbctLocalStorage.get("bot_detector_event_token");n&&(-1===t.indexOf("?")?t+="?":t+="&",o.setAttribute("href",t+="ct_bot_detector_event_token="+n))})})}},{key:"restartBotDetectorEventTokenAttach",value:function(){var e,t=0_createClass(function e(){_classCallCheck(this,e)},[{key:"attachHiddenFieldsToForms",value:function(e){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||+ctPublic.bot_detector_enabled&&!e||(ctNoCookieAttachHiddenFieldsToForms(),document.addEventListener("gform_page_loaded",ctNoCookieAttachHiddenFieldsToForms))}},{key:"attachVisibleFieldsToForm",value:function(e,t){var n=document.createElement("input"),t=(n.setAttribute("type","hidden"),n.setAttribute("id","apbct_visible_fields_"+t),n.setAttribute("name","apbct_visible_fields"),{});t[0]=this.collectVisibleFields(e),n.value=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),e.append(n)}},{key:"attachVisibleFieldsDuringSubmit",value:function(e,t){"native"!==ctPublic.data__cookies_type&&void 0!==e.target.ctFormIndex&&this.setVisibleFieldsCookie(this.collectVisibleFields(t),e.target.ctFormIndex)}},{key:"constructNoCookieHiddenField",value:function(e){var t="hidden",e=("submit"===e&&(t="submit"),""),n=getCleanTalkStorageDataArray(),n=JSON.stringify(n);return n="_ct_no_cookie_data_"+btoa(unescape(encodeURIComponent(n))),(e=document.createElement("input")).setAttribute("name","ct_no_cookie_hidden_field"),e.setAttribute("value",n),e.setAttribute("type",t),e.classList.add("apbct_special_field"),e.classList.add("ct_no_cookie_hidden_field"),e}},{key:"attachNoCookieDuringSubmit",value:function(e){"none"===ctPublic.data__cookies_type&&e.target&&e.target.action&&-1!==e.target.action.toString().indexOf("mailpoet_subscription_form")&&(window.XMLHttpRequest.prototype.send=function(e){var t,n;+ctPublic.bot_detector_enabled?(t=(new ApbctHandler).toolGetEventToken())&&(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+("data%5Bct_bot_detector_event_token%5D="+t+"&")+e)):(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+e)),setTimeout(function(){window.XMLHttpRequest.prototype.send=defaultSend},0)})}},{key:"setVisibleFieldsCookie",value:function(e,t){var n="object"===_typeof(e)&&null!==e?e:{};if("native"===ctPublic.data__cookies_type)for(var o in n){if(10{function p(){_classCallCheck(this,p)}return _createClass(p,[{key:"excludeForm",value:function(e){return!!this.checkHiddenFieldsExclusions(e,"visible_fields")||!!(e.querySelector('input[name="wspsc_add_cart_submit"]')||e.querySelector('input[name="option"][value="com_vikrentcar"]')||e.querySelector('input[name="option"][value="com_vikbooking"]'))||void 0!==e.elements.apbct_visible_fields&&0{var n=_asyncToGenerator(_regenerator().m(function e(t,n){var o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(+ctPublic.settings__forms__check_external){e.n=1;break}return e.a(2,!1);case 1:o=_createForOfIteratorHelper(c),e.p=2,o.s();case 3:if((a=o.n()).done)e.n=6;else{if((a=a.value).matches(t,n))return a=a.getForm(),e.n=4,r(a);e.n=5}break;case 4:if(e.v)return e.a(2,!0);e.n=5;break;case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,a=e.v,o.e(a);case 8:return e.p=8,o.f(),e.f(8);case 9:return e.a(2,!1)}},e,null,[[2,7,8,9]])}));return function(e,t){return n.apply(this,arguments)}})(),c=[{name:"bitrix24",matches:function(e,t){return document.querySelector(".b24-form")&&e.includes("bitrix/services/main/ajax.php?action=crm.site.form.fill")&&t[1].body instanceof FormData},getForm:function(){return document.querySelector(".b24-form form")}},{name:"sender",matches:function(e,t){return e.includes("stats.sender.net/forms")&&"string"==typeof t[1].body},getForm:function(){for(var e=document.querySelectorAll("iframe"),t=0;t{var t=_asyncToGenerator(_regenerator().m(function e(t){var n,o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}return e.a(2,!1);case 1:return n=i(t),b=!0,e.p=2,e.n=3,new Promise(function(e,t){apbct_public_sendAJAX(n,{async:!0,callback:e,onErrorCallback:t})});case 3:return o=e.v,(a=void 0!==o.apbct&&+o.apbct.blocked||void 0!==o.data&&void 0!==o.data.message)&&(new ApbctShowForbidden).parseBlockMessage(o),e.a(2,a);case 4:return e.p=4,e.a(2,!1);case 5:return e.p=5,b=!1,e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(e){return t.apply(this,arguments)}})(),i=function(e){var t,n={action:"cleantalk_force_ajax_check"},o=_createForOfIteratorHelper(e.elements);try{for(o.s();!(t=o.n()).done;){var a=t.value;a.name&&(n[a.name]=a.value)}}catch(e){o.e(e)}finally{o.f()}return+ctPublic.bot_detector_enabled?n.ct_bot_detector_event_token=apbctLocalStorage.get("bot_detector_event_token"):n.ct_no_cookie_hidden_field=getNoCookieData(),n};window.fetch=_asyncToGenerator(_regenerator().m(function e(){var t,n,o,a,c,r,i,l,s,u,d,p=arguments;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:for(t=p.length,n=new Array(t),o=0;o!(!t||"string"!=typeof t)&&["google.com/recaptcha","gstatic.com/recaptcha","recaptcha.google.com","recaptcha.net","www.google.com/recaptcha","apis.google.com","paypal.com","api.paypal.com","www.paypal.com","js.stripe.com","api.stripe.com","checkout.stripe.com","api.doboard.com"].some(function(e){return t.includes(e)}))(a="string"==typeof n[0]?n[0]:(null==(a=n[0])?void 0:a.url)||""))return e.a(2,h.apply(this,n));e.n=2;break;case 2:if(n&&n[0]&&n[1]&&n[1].body){e.n=3;break}return e.a(2,h.apply(this,n));case 3:return e.n=4,m.processFetch(n);case 4:if(!0===e.v)return e.a(2,Promise.reject(new Error("Forbidden")));e.n=5;break;case 5:if(0{try{return n[0].includes(new URL(ctPublicFunctions._rest_url).pathname+"metform/")}catch(e){}})()))try{n[1].body=_(n[1].body,f(+ctPublic.bot_detector_enabled))}catch(e){}if(0{var t=e.value;"undefined"!=typeof ctPublic&&1==+ctPublic.settings__forms__search_test&&null!==t.getAttribute("apbct-form-sign")&&"native_search"===t.getAttribute("apbct-form-sign")&&(t.apbctSearchPrevOnsubmit=t.onsubmit,t.onsubmit=function(e){return n.searchFormHandler(e,t)})})()}catch(e){t.e(e)}finally{t.f()}}},{key:"searchFormHandler",value:function(e,t){try{var n,o,a,c=t.querySelector('[name*="apbct__email_id__"]'),r=null,i=(null!==c&&null!==c.value&&(r=c.value),getCleanTalkStorageDataArray()),l=apbctLocalStorage.get("bot_detector_event_token");null===i&&null===c&&null===l||(e.preventDefault(),n=function(){null!==c&&c.parentNode.removeChild(c),"function"==typeof t.apbctSearchPrevOnsubmit?t.apbctSearchPrevOnsubmit():HTMLFormElement.prototype.submit.call(t)},o=i,null!==r&&(o.apbct_search_form__honeypot_value=r),o.ct_bot_detector_event_token=l,"string"==typeof o.apbct_pixel_url&&-1!==o.apbct_pixel_url.indexOf("%3A")&&(o.apbct_pixel_url=decodeURIComponent(o.apbct_pixel_url)),void 0!==(a=JSON.stringify(o))&&0!==a.length?ctSetAlternativeCookie(a,{callback:n,onErrorCallback:n,forceAltCookies:!0}):n())}catch(e){console.warn("APBCT search form onsubmit handler error. "+e)}}},{key:"toolForAntiCrawlerCheckDuringBotDetector",value:function(){var e=setInterval(function(){localStorage.bot_detector_event_token&&(ctSetCookie("apbct_bot_detector_exist","1","3600"),clearInterval(e))},500)}},{key:"toolGetEventToken",value:function(){var t=localStorage.getItem("bot_detector_event_token");try{t=JSON.parse(t)}catch(e){t=!1}return!(null===t||!1===t||!t.hasOwnProperty("value")||""===t.value)&&t.value}}])})(),ApbctShowForbidden=(()=>_createClass(function e(){_classCallCheck(this,e)},[{key:"prepareBlockForAjaxForms",value:function(){var o=function(e){if(e.responseText&&-1!==e.responseText.indexOf('"apbct')&&-1===e.responseText.indexOf("DOCTYPE"))try{this.parseBlockMessage(JSON.parse(e.responseText))}catch(e){console.log(e.toString())}}.bind(this);"undefined"!=typeof jQuery?"function"!=typeof jQuery(document).ajaxComplete()?jQuery(document).on("ajaxComplete",function(e,t,n){o(t)}):jQuery(document).ajaxComplete(function(e,t,n){o(t)}):"undefined"!=typeof XMLHttpRequest&&document.addEventListener("readystatechange",function(e){4===e.target.readyState&&o(e.target)})}},{key:"parseBlockMessage",value:function(e){var t,n="";if((void 0!==e.apbct&&(e=e.apbct).blocked&&(n=e.comment),n=void 0!==e.data&&void 0!==(e=e.data).message?e.message:n)&&(document.dispatchEvent(new CustomEvent("apbctAjaxBockAlert",{bubbles:!0,detail:{message:n}})),cleantalkModal.loaded=n,cleantalkModal.open(),1==+e.stop_script&&(window.stop(),e.integration&&"NEXForms"===e.integration&&((t=document.querySelector("form.submit-nex-form button.nex-submit"))&&(t.disabled=!0,t.style.opacity="0.5",t.style.cursor="not-allowed",t.style.pointerEvents="none",t.style.backgroundColor="#ccc",t.style.color="#fff"),t=document.querySelector("div.nex_success_message"))&&(t.style.display="none"),e.integration)&&"ElfsightForm"===e.integration)){var o=[document];try{document.querySelectorAll("iframe").forEach(function(e){try{e.contentDocument&&o.push(e.contentDocument)}catch(e){}})}catch(e){}for(var a=0,c=o;a_createClass(function e(){_classCallCheck(this,e)},[{key:"extract",value:function(e){if(e&&"string"==typeof e){try{e=decodeURIComponent(e)}catch(e){return!1}var t=document.querySelectorAll("form"),n=this.getIdFromAjax(e);if(n){var o,a=_createForOfIteratorHelper(t);try{for(a.s();!(o=a.n()).done;){var c=o.value,r=this.findParentContainer(c);if(r){var i=this.getIdFromHTML(r);if(i===n){var l=r.querySelector("input[id^=apbct_visible_fields_]");if(null!=l&&l.value)return l.value}}}}catch(e){a.e(e)}finally{a.f()}}}return!1}},{key:"getIdFromAjax",value:function(e){return console.warn("getIdFromAjax must be implemented by child class"),null}},{key:"findParentContainer",value:function(e){return console.warn("findParentContainer must be implemented by child class"),null}},{key:"getIdFromHTML",value:function(e){return console.warn("getIdFromHTML must be implemented by child class"),null}}],[{key:"createExtractor",value:function(e){switch(e){case"action=nf_ajax_submit":return new ApbctNinjaFormsVisibleFields;case"action=mailpoet":return new ApbctMailpoetVisibleFields;default:return null}}}]))(),ApbctNinjaFormsVisibleFields=(()=>{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/"id"\s*:\s*"?(\d+)"/,/form_id\s*[:\s]*"?(\d+)"/,/nf-form-(\d+)/,/"id":(\d+)/];t{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/form_id\s*[:\s]*"?(\d+)"/,/data\[form_id\]=(\d+)/,/form_id=(\d+)/];t_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"wrappers",[]),this.wrappers=this.findWrappers(),this.wrappers.length<1||this.checkBot()},[{key:"findWrappers",value:function(){return document.querySelectorAll("div.ct-encoded-form-wrapper")}},{key:"checkBot",value:function(){var t=this,e={post_url:document.location.href,referrer:document.referrer};+ctPublic.bot_detector_enabled?e.event_token=apbctLocalStorage.get("bot_detector_event_token"):e.event_javascript_data=getJavascriptClientData(),"rest"===ctPublicFunctions.data__ajax_type?apbct_public_sendREST("force_protection_check_bot",{data:e,method:"POST",callback:function(e){return t.checkBotCallback(e)}}):"admin_ajax"===ctPublicFunctions.data__ajax_type&&(e.action="apbct_force_protection_check_bot",apbct_public_sendAJAX(e,{callback:function(e){return t.checkBotCallback(e)}}))}},{key:"checkBotCallback",value:function(e){if(e.data&&e.data.status&&200!==e.data.status)console.log("ApbctForceProtection connection error occurred"),this.decodeForms();else{if("string"==typeof e)try{e=JSON.parse(e)}catch(e){return console.log("ApbctForceProtection decodeForms error",e),void this.decodeForms()}"object"===_typeof(e)&&e.allow&&1===e.allow?(this.decodeForms(),document.dispatchEvent(new Event("apbctForceProtectionAllowed"))):this.showMessageForBot(e.message)}}},{key:"decodeForms",value:function(){var n;this.wrappers.forEach(function(e){n=e.querySelector("div.ct-encoded-form").dataset.encodedForm;try{var t;n&&"string"==typeof n&&(t=decodeURIComponent(n),e.outerHTML=atob(t))}catch(e){console.log(e)}})}},{key:"showMessageForBot",value:function(t){this.wrappers.forEach(function(e){e.querySelector("div.ct-encoded-form").dataset.encodedForm&&(e.outerHTML='
'+t+"
")})}}]))(),apbctForceProtectionIsInitialized=!1;function apbctForceProtect(){apbctForceProtectionIsInitialized||(apbctForceProtectionIsInitialized=!0,+ctPublic.settings__forms__force_protection&&void 0!==ApbctForceProtection&&new ApbctForceProtection)}ctPublic.data__key_is_ok&&("loading"!==document.readyState?apbctForceProtect():apbct_attach_event_handler(document,"DOMContentLoaded",apbctForceProtect));var ctMouseReadInterval,ctMouseWriteDataInterval,ApbctGatheringData=(()=>_createClass(function e(){_classCallCheck(this,e)},[{key:"setSessionId",value:function(){var e;apbctSessionStorage.isSet("apbct_session_id")?apbctLocalStorage.set("apbct_page_hits",Number(apbctLocalStorage.get("apbct_page_hits"))+1):(e=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(2,10),apbctSessionStorage.set("apbct_session_id",e,!1),apbctLocalStorage.set("apbct_page_hits",1),document.referrer&&new URL(document.referrer).host!==location.host&&apbctSessionStorage.set("apbct_site_referer",document.referrer,!1))}},{key:"writeReferrersToSessionStorage",value:function(){var e=apbctSessionStorage.get("apbct_session_current_page");!1!==e&&document.location.href!==e&&apbctSessionStorage.set("apbct_prev_referer",e,!1),apbctSessionStorage.set("apbct_session_current_page",document.location.href,!1)}},{key:"setCookiesType",value:function(){var e=apbctLocalStorage.get("ct_cookies_type");e&&e===ctPublic.data__cookies_type||(apbctLocalStorage.set("ct_cookies_type",ctPublic.data__cookies_type),apbctLocalStorage.delete("ct_mouse_moved"),apbctLocalStorage.delete("ct_has_scrolled"))}},{key:"startFieldsListening",value:function(){if(!apbctLocalStorage.isSet("ct_has_key_up")&&!apbctLocalStorage.get("ct_has_key_up")||!apbctLocalStorage.isSet("ct_has_input_focused")&&!apbctLocalStorage.get("ct_has_input_focused")||"native"!==ctPublic.data__cookies_type||void 0===ctGetCookie("ct_has_input_focused")||void 0===ctGetCookie("ct_has_key_up")){var e=ctGetPageForms();if(ctPublic.handled_fields=[],0_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"elementBody",document.querySelector("body")),_defineProperty(this,"collectionForms",document.forms),this.setListeners()},[{key:"setListeners",value:function(){var t=this;this.elementBody.addEventListener("click",function(e){t.checkElementInForms(e,"addClicks")}),this.elementBody.addEventListener("mouseup",function(e){"Range"==document.getSelection().type.toString()&&t.addSelected()}),this.elementBody.addEventListener("mousemove",function(e){t.checkElementInForms(e,"trackMouseMovement")})}},{key:"checkElementInForms",value:function(e,t){for(var n,o=0;o_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"fieldData",{isAutoFill:!1,isUseBuffer:!1,speedDelta:0,firstKeyTimestamp:0,lastKeyTimestamp:0,lastDelta:0,countOfKey:0}),_defineProperty(this,"fields",document.querySelectorAll("textarea[name=comment]")),_defineProperty(this,"data",[])},[{key:"gatheringFields",value:function(){var n=this;Array.prototype.slice.call(this.fields).forEach(function(e,t){n.data.push(Object.assign({},n.fieldData))})}},{key:"setListeners",value:function(){var o=this;this.fields.forEach(function(e,t){e.addEventListener("paste",function(){o.data[t].isUseBuffer=!0})}),this.fields.forEach(function(e,t){e.addEventListener("onautocomplete",function(){o.data[t].isAutoFill=!0})}),this.fields.forEach(function(e,n){e.addEventListener("input",function(){o.data[n].countOfKey++;var e,t=+new Date;1===o.data[n].countOfKey?(o.data[n].lastKeyTimestamp=t,o.data[n].firstKeyTimestamp=t):(e=t-o.data[n].lastKeyTimestamp,2===o.data[n].countOfKey?(o.data[n].lastKeyTimestamp=t,o.data[n].lastDelta=e):2{function o(){_classCallCheck(this,o)}return _createClass(o,null,[{key:"getFrontendDataLog",value:function(){var e=("undefined"!=typeof ctPublicFunctions&&ctPublicFunctions.cookiePrefix?ctPublicFunctions.cookiePrefix:"")+o.LOG_KEY,t=o.LOG_KEY;if(void 0!==apbctLocalStorage&&apbctLocalStorage.get){var n=apbctLocalStorage.get(e)||apbctLocalStorage.get(t)||null;if(n&&"string"==typeof n)try{return JSON.parse(n)}catch(e){return""}return n}n=(n=localStorage.getItem(e))||localStorage.getItem(t)||null;try{return"string"==typeof n?JSON.parse(n):n}catch(e){return""}}},{key:"asDTO",value:function(){return{botd_logic_loaded:o.botdLogicLoaded,botd_wrapper_loaded:o.botdWrapperLoaded,frontend_data_log:"",transport_enabled:1}}},{key:"detectScripts",value:function(){if(o.botdWrapperLoaded&&o.botdLogicLoaded)return!0;for(var e=document.getElementsByTagName("script"),t=0;t .comment-body *[class*="comment-author"]',document.querySelector(".apbct-trp .comment-author .comment-author-link")&&(e='.apbct-trp *[class*="comment-author-link"]'),0!==(e=document.querySelectorAll(e+',.apbct-trp > .wp-block-group *[class*="comment-author"],.apbct-trp *[class*="review__author"],.apbct-trp td[class*="column-author"] > strong')).length)&&(e.forEach(function(e,t){var n,o,a,c,r,i,l,s,u;e.className.indexOf("review")<0&&"undefined"==typeof pagenow&&e.parentElement.className.indexOf("group")<0&&"DIV"!=e.tagName||e.querySelector(".comment-metadata")||((n=document.createElement("div")).setAttribute("class","apbct-real-user-badge"),(o=document.createElement("img")).setAttribute("src",d.imgPersonUrl),o.setAttribute("class","apbct-real-user-popup-img"),(a=document.createElement("div")).setAttribute("class","apbct-real-user-popup"),(i=document.createElement("strong")).append(d.phrases.trpHeading),(c=document.createElement("div")).setAttribute("class","apbct-real-user-popup-content_row"),(r=document.createElement("div")).append(" "),r.append(i),r.append(d.phrases.trpContent1),(i=document.createElement("div")).style.display="flex",i.style.gap="5px",(l=document.createElement("div")).append(d.phrases.trpContent2),i.append(l),p&&(l=document.createElement("div"),(s=document.createElement("a")).setAttribute("href",d.trpContentLink),s.setAttribute("target","_blank"),(u=document.createElement("img")).setAttribute("src",ctAdminCommon.new_window_gif),u.setAttribute("alt","New window"),u.setAttribute("style","padding-top:3px"),s.append(u),l.append(s),i.append(l)),c.append(r,i),a.append(c),n.append(o),e.append(n),e.append(a))}),document.querySelectorAll(".apbct-real-user-badge").forEach(function(o){var a=void 0,e=(t.body.addEventListener("click",function(e){-1==e.target.className.indexOf("apbct-real-user")&&-1==e.target.parentElement.className.indexOf("apbct-real-user")&&closeAllPopupTRP()}),o.addEventListener("click",function(){var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.toggle("visible")}),o.addEventListener("mouseenter",function(){closeAllPopupTRP();var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.add("visible")}),o.addEventListener("mouseleave",function(){var t=this;a=setTimeout(function(){var e=t.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.nextElementSibling);e.addEventListener("mouseenter",function(){clearTimeout(a),e.classList.add("visible")}),e.addEventListener("mouseleave",function(){a=setTimeout(function(){e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.addEventListener("touchend",function(){var n=this;a=setTimeout(function(){var e=n.nextElementSibling,t=window.getSelection();e&&t&&e.classList.contains("apbct-real-user-popup")&&0===t.toString().length?e.classList.remove("visible"):(clearTimeout(a),document.addEventListener("selectionchange",function e(){var t=window.getSelection();t&&0===t.toString().length&&(a=setTimeout(function(){var e=o.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},3e3),document.removeEventListener("selectionchange",e))}))},3e3)})})))}); \ No newline at end of file +function _callSuper(e,t,n){return t=_getPrototypeOf(t),_possibleConstructorReturn(e,_isNativeReflectConstruct()?Reflect.construct(t,n||[],_getPrototypeOf(e).constructor):t.apply(e,n))}function _possibleConstructorReturn(e,t){if(t&&("object"==_typeof(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_isNativeReflectConstruct=function(){return!!e})()}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function ownKeys(t,e){var n,o=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,n)),o}function _objectSpread(t){for(var e=1;et||c=e.length?{done:!0}:{done:!1,value:e[c++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var n;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n{var n,e;if(c.data.forEach(function(e){e.encoded_email===a[t].dataset.originalString&&(n=e)}),!1===n.is_allowed)return{v:void 0};if(void 0===a[t].href||0!==a[t].href.indexOf("mailto:")&&0!==a[t].href.indexOf("tel:"))a[t].classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a[t])},2e3);else{if(0===a[t].href.indexOf("mailto:"))e="mailto:";else{if(0!==a[t].href.indexOf("tel:"))return 0;e="tel:"}var o=a[t].href.replace(e,"");ctReplaceInTextNodes(a[t],o,ctHtmlToText(n.decoded_email)),a[t].href=e+n.decoded_email,a[t].querySelectorAll("span.apbct-email-encoder").forEach(function(t){var n="";c.data.forEach(function(e){e.encoded_email===t.dataset.originalString&&(n=e.decoded_email)}),t.textContent=ctHtmlToText(n)})}a[t].removeEventListener("click",ctFillDecodedEmailHandler)})(t))&&e)return e.v}else{var n=c.data[0];a.classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a)},2e3),a.removeEventListener("click",ctFillDecodedEmailHandler)}}function ctReplaceInTextNodes(e,t,n){if(t){e.normalize();for(var o,a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);o=a.nextNode();)if(-1!==o.nodeValue.indexOf(t))return void(o.nodeValue=o.nodeValue.replace(t,function(){return n}))}}function ctHtmlToText(e){return e?(new DOMParser).parseFromString(String(e),"text/html").documentElement.textContent:""}function ctProcessDecodedDataResult(e,t){t.setAttribute("title",""),t.removeAttribute("style"),ctFillDecodedEmail(t,e.decoded_email)}function ctFillDecodedEmail(e,t){e.innerHTML=e.innerHTML.replace(/.+?(
)/,t+"$1")}var ctEmailDecoderIsInitialized=!1,cleantalkModal=(document.addEventListener("DOMContentLoaded",function(){if(!ctEmailDecoderIsInitialized){ctEmailDecoderIsInitialized=!0;var e=document.querySelectorAll("[data-original-string]");if("undefined"!=typeof ctPublic&&(ctPublic.encodedEmailNodes=e),e.length)for(var t=0;t$1')):(c.innerHTML="Loading...",t&&this.load(t)),c.setAttribute("id","cleantalk-modal-content"),n.append(c),this.opened=!0},confirm:function(e){var t,n=1_createClass(function e(t){_classCallCheck(this,e),_defineProperty(this,"ajax_parameters",{}),_defineProperty(this,"restParameters",{}),_defineProperty(this,"selector",null),_defineProperty(this,"elements",[]),_defineProperty(this,"eventCallback",void 0),_defineProperty(this,"eventSelector",void 0),_defineProperty(this,"event",void 0),this.select(t)},[{key:"select",value:function(e){return e instanceof HTMLCollection?(this.selector=null,this.elements=[],this.elements=Array.prototype.slice.call(e)):"object"===_typeof(e)?(this.selector=null,this.elements=[],this.elements[0]=e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect(),this}},{key:"addElement",value:function(e){"object"===_typeof(e)?this.elements.push(e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect()}},{key:"push",value:function(e){this.elements.push(e)}},{key:"reduce",value:function(){this.elements=this.elements.slice(0,-1)}},{key:"deselect",value:function(){this.elements=[]}},{key:"css",value:function(e,t){if(t=t||!1,"object"===_typeof(e)){for(var n in e)if(Object.hasOwn(e,n))for(var o=n.replace(/([-_][a-z])/g,function(e){return e.toUpperCase().replace("-","").replace("_","")}),a=0;a(e=document.createElement(e).constructor,!Boolean(~[HTMLElement,HTMLUnknownElement].indexOf(e))))(t)?n||e.tagName.toLowerCase()===t.toLowerCase():t.match(/^[a-z]/)?n||Boolean(e[t]):n||(null!==this.selector?null!==document.querySelector(this.selector+t):this.isWithoutSelector(e,t)):n}},{key:"isWithoutSelector",value:function(e,t){var n,o=!1,a=_createForOfIteratorHelper(document.querySelectorAll(t));try{for(a.s();!(n=a.n()).done;)o=o||e===n.value}catch(e){a.e(e)}finally{a.f()}return o}},{key:"filter",value:function(e){this.selector=null;for(var t=this.elements.length-1;0<=t;t--)this.isElem(this.elements[t],e)||this.elements.splice(Number(t),1);return this}},{key:"parent",value:function(e){return this.select(this.elements[0].parentElement),void 0===e||this.is(e)||this.deselect(),this}},{key:"parents",value:function(e){for(this.select(this.elements[0]);null!==this.elements[this.elements.length-1].parentElement;)this.push(this.elements[this.elements.length-1].parentElement);return this.elements.splice(0,1),void 0!==e&&this.filter(e),this}},{key:"children",value:function(e){return this.select(this.elements[0].children),void 0!==e&&this.filter(e),this}},{key:"siblings",value:function(e){var t=this.elements[0];return this.parent(),this.children(e),this.elements.splice(this.elements.indexOf(t),1),this}},{key:"remove",value:function(){var e,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(e=t.n()).done;)e.value.remove()}catch(e){t.e(e)}finally{t.f()}}},{key:"after",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.after(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"append",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.append(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"fadeIn",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity+(new Date-n)/o,n=+new Date,+t.style.opacity<1&&(window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16))}var t=a.value,n=(t.style.opacity=0,t.style.display="block",+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}},{key:"fadeOut",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity-(new Date-n)/o,n=+new Date,0<+t.style.opacity?window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16):t.style.display="none"}var t=a.value,n=(t.style.opacity=1,+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}}]))());function apbct(e){return(new ApbctCore).select(e)}Object.prototype.hasOwn||Object.defineProperty(Object.prototype,"hasOwn",{value:function(e){return Object.prototype.hasOwnProperty.call(this,e)},enumerable:!1,configurable:!0,writable:!0});var ApbctFetchProxyCallbacks={mailchimpBlock:function(e){try{for(var t=localStorage.length-1;0<=t;t--){var n=localStorage.key(t);n&&-1!==n.indexOf("mcforms")&&localStorage.removeItem(n)}}catch(e){console.warn("Error clearing localStorage by mcforms mask:",e)}}},ApbctFetchProxyConfig={mailchimp:{selector:".mcforms-wrapper",urlPattern:"mcf-integrations-mcmktg.mlchmpcompprduse2.iks2.a.intuit.com/gateway/receive",externalForm:!0,action:"cleantalk_force_mailchimp_shadowroot_check",callbackAllow:!1,callbackBlock:ApbctFetchProxyCallbacks.mailchimpBlock},otterform:{selector:".otter-form__container",urlPattern:"otter/v1/form/frontend",externalForm:!1,action:"cleantalk_force_otterform_check",callbackAllow:!1,callbackBlock:!1},elfsight:{selector:'[class*="elfsight-app"]',urlPattern:"data.elfsight.com/public/resources/form-submissions",externalForm:!0,action:"cleantalk_force_elfsight_check",payloadKey:"elfsight_payload",callbackAllow:!1,callbackBlock:!1}},ApbctFetchProxyProtection=(()=>{return _createClass(function e(){_classCallCheck(this,e),this.config=ApbctFetchProxyConfig},[{key:"findMatchingConfig",value:function(e){for(var t="string"==typeof e?e:null!=e&&"string"==typeof e.href?e.href:"",n=0,o=Object.entries(this.config);n_createClass(function e(){_classCallCheck(this,e)},[{key:"attachEventTokenToMultipageGravityForms",value:function(){document.addEventListener("gform_page_loaded",function(){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||"function"!=typeof setEventTokenField||"function"!=typeof botDetectorLocalStorage||setEventTokenField(botDetectorLocalStorage.get("bot_detector_event_token"))})}},{key:"attachEventTokenToWoocommerceGetRequestAddToCart",value:function(){ctPublic.wc_ajax_add_to_cart||document.querySelectorAll("a.add_to_cart_button:not(.product_type_variable):not(.wc-interactive)").forEach(function(o){o.addEventListener("click",function(e){var t=o.getAttribute("href"),n=apbctLocalStorage.get("bot_detector_event_token");n&&(-1===t.indexOf("?")?t+="?":t+="&",o.setAttribute("href",t+="ct_bot_detector_event_token="+n))})})}},{key:"restartBotDetectorEventTokenAttach",value:function(){var e,t=0_createClass(function e(){_classCallCheck(this,e)},[{key:"attachHiddenFieldsToForms",value:function(e){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||+ctPublic.bot_detector_enabled&&!e||(ctNoCookieAttachHiddenFieldsToForms(),document.addEventListener("gform_page_loaded",ctNoCookieAttachHiddenFieldsToForms))}},{key:"attachVisibleFieldsToForm",value:function(e,t){var n=document.createElement("input"),t=(n.setAttribute("type","hidden"),n.setAttribute("id","apbct_visible_fields_"+t),n.setAttribute("name","apbct_visible_fields"),{});t[0]=this.collectVisibleFields(e),n.value=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),e.append(n)}},{key:"attachVisibleFieldsDuringSubmit",value:function(e,t){"native"!==ctPublic.data__cookies_type&&void 0!==e.target.ctFormIndex&&this.setVisibleFieldsCookie(this.collectVisibleFields(t),e.target.ctFormIndex)}},{key:"constructNoCookieHiddenField",value:function(e){var t="hidden",e=("submit"===e&&(t="submit"),""),n=getCleanTalkStorageDataArray(),n=JSON.stringify(n);return n="_ct_no_cookie_data_"+btoa(unescape(encodeURIComponent(n))),(e=document.createElement("input")).setAttribute("name","ct_no_cookie_hidden_field"),e.setAttribute("value",n),e.setAttribute("type",t),e.classList.add("apbct_special_field"),e.classList.add("ct_no_cookie_hidden_field"),e}},{key:"attachNoCookieDuringSubmit",value:function(e){"none"===ctPublic.data__cookies_type&&e.target&&e.target.action&&-1!==e.target.action.toString().indexOf("mailpoet_subscription_form")&&(window.XMLHttpRequest.prototype.send=function(e){var t,n;+ctPublic.bot_detector_enabled?(t=(new ApbctHandler).toolGetEventToken())&&(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+("data%5Bct_bot_detector_event_token%5D="+t+"&")+e)):(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+e)),setTimeout(function(){window.XMLHttpRequest.prototype.send=defaultSend},0)})}},{key:"setVisibleFieldsCookie",value:function(e,t){var n="object"===_typeof(e)&&null!==e?e:{};if("native"===ctPublic.data__cookies_type)for(var o in n){if(10{function p(){_classCallCheck(this,p)}return _createClass(p,[{key:"excludeForm",value:function(e){return!!this.checkHiddenFieldsExclusions(e,"visible_fields")||!!(e.querySelector('input[name="wspsc_add_cart_submit"]')||e.querySelector('input[name="option"][value="com_vikrentcar"]')||e.querySelector('input[name="option"][value="com_vikbooking"]'))||void 0!==e.elements.apbct_visible_fields&&0{var n=_asyncToGenerator(_regenerator().m(function e(t,n){var o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(+ctPublic.settings__forms__check_external){e.n=1;break}return e.a(2,!1);case 1:o=_createForOfIteratorHelper(c),e.p=2,o.s();case 3:if((a=o.n()).done)e.n=6;else{if((a=a.value).matches(t,n))return a=a.getForm(),e.n=4,i(a);e.n=5}break;case 4:if(e.v)return e.a(2,!0);e.n=5;break;case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,a=e.v,o.e(a);case 8:return e.p=8,o.f(),e.f(8);case 9:return e.a(2,!1)}},e,null,[[2,7,8,9]])}));return function(e,t){return n.apply(this,arguments)}})(),c=[{name:"bitrix24",matches:function(e,t){return document.querySelector(".b24-form")&&e.includes("bitrix/services/main/ajax.php?action=crm.site.form.fill")&&t[1].body instanceof FormData},getForm:function(){return document.querySelector(".b24-form form")}},{name:"sender",matches:function(e,t){return e.includes("stats.sender.net/forms")&&"string"==typeof t[1].body},getForm:function(){for(var e=document.querySelectorAll("iframe"),t=0;t{var t=_asyncToGenerator(_regenerator().m(function e(t){var n,o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}return e.a(2,!1);case 1:return n=r(t),b=!0,e.p=2,e.n=3,new Promise(function(e,t){apbct_public_sendAJAX(n,{async:!0,callback:e,onErrorCallback:t})});case 3:return o=e.v,(a=void 0!==o.apbct&&+o.apbct.blocked||void 0!==o.data&&void 0!==o.data.message)&&(new ApbctShowForbidden).parseBlockMessage(o),e.a(2,a);case 4:return e.p=4,e.a(2,!1);case 5:return e.p=5,b=!1,e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(e){return t.apply(this,arguments)}})(),r=function(e){var t,n={action:"cleantalk_force_ajax_check"},o=_createForOfIteratorHelper(e.elements);try{for(o.s();!(t=o.n()).done;){var a=t.value;a.name&&(n[a.name]=a.value)}}catch(e){o.e(e)}finally{o.f()}return+ctPublic.bot_detector_enabled?n.ct_bot_detector_event_token=apbctLocalStorage.get("bot_detector_event_token"):n.ct_no_cookie_hidden_field=getNoCookieData(),n};window.fetch=_asyncToGenerator(_regenerator().m(function e(){var t,n,o,a,c,i,r,l,s,u,d,p=arguments;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:for(t=p.length,n=new Array(t),o=0;o!(!t||"string"!=typeof t)&&["google.com/recaptcha","gstatic.com/recaptcha","recaptcha.google.com","recaptcha.net","www.google.com/recaptcha","apis.google.com","paypal.com","api.paypal.com","www.paypal.com","js.stripe.com","api.stripe.com","checkout.stripe.com","api.doboard.com"].some(function(e){return t.includes(e)}))(a="string"==typeof n[0]?n[0]:(null==(a=n[0])?void 0:a.url)||""))return e.a(2,h.apply(this,n));e.n=2;break;case 2:if(n&&n[0]&&n[1]&&n[1].body){e.n=3;break}return e.a(2,h.apply(this,n));case 3:return e.n=4,_.processFetch(n);case 4:if(!0===e.v)return e.a(2,Promise.reject(new Error("Forbidden")));e.n=5;break;case 5:if(0{try{return n[0].includes(new URL(ctPublicFunctions._rest_url).pathname+"metform/")}catch(e){}})()))try{n[1].body=m(n[1].body,f(+ctPublic.bot_detector_enabled))}catch(e){}if(0{var t=e.value;"undefined"!=typeof ctPublic&&1==+ctPublic.settings__forms__search_test&&null!==t.getAttribute("apbct-form-sign")&&"native_search"===t.getAttribute("apbct-form-sign")&&(t.apbctSearchPrevOnsubmit=t.onsubmit,t.onsubmit=function(e){return n.searchFormHandler(e,t)})})()}catch(e){t.e(e)}finally{t.f()}}},{key:"searchFormHandler",value:function(e,t){try{var n,o,a,c=t.querySelector('[name*="apbct__email_id__"]'),i=null,r=(null!==c&&null!==c.value&&(i=c.value),getCleanTalkStorageDataArray()),l=apbctLocalStorage.get("bot_detector_event_token");null===r&&null===c&&null===l||(e.preventDefault(),n=function(){null!==c&&c.parentNode.removeChild(c),"function"==typeof t.apbctSearchPrevOnsubmit?t.apbctSearchPrevOnsubmit():HTMLFormElement.prototype.submit.call(t)},o=r,null!==i&&(o.apbct_search_form__honeypot_value=i),o.ct_bot_detector_event_token=l,"string"==typeof o.apbct_pixel_url&&-1!==o.apbct_pixel_url.indexOf("%3A")&&(o.apbct_pixel_url=decodeURIComponent(o.apbct_pixel_url)),void 0!==(a=JSON.stringify(o))&&0!==a.length?ctSetAlternativeCookie(a,{callback:n,onErrorCallback:n,forceAltCookies:!0}):n())}catch(e){console.warn("APBCT search form onsubmit handler error. "+e)}}},{key:"toolForAntiCrawlerCheckDuringBotDetector",value:function(){var e=setInterval(function(){localStorage.bot_detector_event_token&&(ctSetCookie("apbct_bot_detector_exist","1","3600"),clearInterval(e))},500)}},{key:"toolGetEventToken",value:function(){var t=localStorage.getItem("bot_detector_event_token");try{t=JSON.parse(t)}catch(e){t=!1}return!(null===t||!1===t||!t.hasOwnProperty("value")||""===t.value)&&t.value}}])})(),ApbctShowForbidden=(()=>_createClass(function e(){_classCallCheck(this,e)},[{key:"prepareBlockForAjaxForms",value:function(){var o=function(e){if(e.responseText&&-1!==e.responseText.indexOf('"apbct')&&-1===e.responseText.indexOf("DOCTYPE"))try{this.parseBlockMessage(JSON.parse(e.responseText))}catch(e){console.log(e.toString())}}.bind(this);"undefined"!=typeof jQuery?"function"!=typeof jQuery(document).ajaxComplete()?jQuery(document).on("ajaxComplete",function(e,t,n){o(t)}):jQuery(document).ajaxComplete(function(e,t,n){o(t)}):"undefined"!=typeof XMLHttpRequest&&document.addEventListener("readystatechange",function(e){4===e.target.readyState&&o(e.target)})}},{key:"parseBlockMessage",value:function(e){var t,n="";if((void 0!==e.apbct&&(e=e.apbct).blocked&&(n=e.comment),n=void 0!==e.data&&void 0!==(e=e.data).message?e.message:n)&&(document.dispatchEvent(new CustomEvent("apbctAjaxBockAlert",{bubbles:!0,detail:{message:n}})),cleantalkModal.loaded=n,cleantalkModal.open(),1==+e.stop_script&&(window.stop(),e.integration&&"NEXForms"===e.integration&&((t=document.querySelector("form.submit-nex-form button.nex-submit"))&&(t.disabled=!0,t.style.opacity="0.5",t.style.cursor="not-allowed",t.style.pointerEvents="none",t.style.backgroundColor="#ccc",t.style.color="#fff"),t=document.querySelector("div.nex_success_message"))&&(t.style.display="none"),e.integration)&&"ElfsightForm"===e.integration)){var o=[document];try{document.querySelectorAll("iframe").forEach(function(e){try{e.contentDocument&&o.push(e.contentDocument)}catch(e){}})}catch(e){}for(var a=0,c=o;a_createClass(function e(){_classCallCheck(this,e)},[{key:"extract",value:function(e){if(e&&"string"==typeof e){try{e=decodeURIComponent(e)}catch(e){return!1}var t=document.querySelectorAll("form"),n=this.getIdFromAjax(e);if(n){var o,a=_createForOfIteratorHelper(t);try{for(a.s();!(o=a.n()).done;){var c=o.value,i=this.findParentContainer(c);if(i){var r=this.getIdFromHTML(i);if(r===n){var l=i.querySelector("input[id^=apbct_visible_fields_]");if(null!=l&&l.value)return l.value}}}}catch(e){a.e(e)}finally{a.f()}}}return!1}},{key:"getIdFromAjax",value:function(e){return console.warn("getIdFromAjax must be implemented by child class"),null}},{key:"findParentContainer",value:function(e){return console.warn("findParentContainer must be implemented by child class"),null}},{key:"getIdFromHTML",value:function(e){return console.warn("getIdFromHTML must be implemented by child class"),null}}],[{key:"createExtractor",value:function(e){switch(e){case"action=nf_ajax_submit":return new ApbctNinjaFormsVisibleFields;case"action=mailpoet":return new ApbctMailpoetVisibleFields;default:return null}}}]))(),ApbctNinjaFormsVisibleFields=(()=>{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/"id"\s*:\s*"?(\d+)"/,/form_id\s*[:\s]*"?(\d+)"/,/nf-form-(\d+)/,/"id":(\d+)/];t{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/form_id\s*[:\s]*"?(\d+)"/,/data\[form_id\]=(\d+)/,/form_id=(\d+)/];t_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"wrappers",[]),this.wrappers=this.findWrappers(),this.wrappers.length<1||this.checkBot()},[{key:"findWrappers",value:function(){return document.querySelectorAll("div.ct-encoded-form-wrapper")}},{key:"checkBot",value:function(){var t=this,e={post_url:document.location.href,referrer:document.referrer};+ctPublic.bot_detector_enabled?e.event_token=apbctLocalStorage.get("bot_detector_event_token"):e.event_javascript_data=getJavascriptClientData(),"rest"===ctPublicFunctions.data__ajax_type?apbct_public_sendREST("force_protection_check_bot",{data:e,method:"POST",callback:function(e){return t.checkBotCallback(e)}}):"admin_ajax"===ctPublicFunctions.data__ajax_type&&(e.action="apbct_force_protection_check_bot",apbct_public_sendAJAX(e,{callback:function(e){return t.checkBotCallback(e)}}))}},{key:"checkBotCallback",value:function(e){if(e.data&&e.data.status&&200!==e.data.status)console.log("ApbctForceProtection connection error occurred"),this.decodeForms();else{if("string"==typeof e)try{e=JSON.parse(e)}catch(e){return console.log("ApbctForceProtection decodeForms error",e),void this.decodeForms()}"object"===_typeof(e)&&e.allow&&1===e.allow?(this.decodeForms(),document.dispatchEvent(new Event("apbctForceProtectionAllowed"))):this.showMessageForBot(e.message)}}},{key:"decodeForms",value:function(){var n;this.wrappers.forEach(function(e){n=e.querySelector("div.ct-encoded-form").dataset.encodedForm;try{var t;n&&"string"==typeof n&&(t=decodeURIComponent(n),e.outerHTML=atob(t))}catch(e){console.log(e)}})}},{key:"showMessageForBot",value:function(t){this.wrappers.forEach(function(e){e.querySelector("div.ct-encoded-form").dataset.encodedForm&&(e.outerHTML='
'+t+"
")})}}]))(),apbctForceProtectionIsInitialized=!1;function apbctForceProtect(){apbctForceProtectionIsInitialized||(apbctForceProtectionIsInitialized=!0,+ctPublic.settings__forms__force_protection&&void 0!==ApbctForceProtection&&new ApbctForceProtection)}ctPublic.data__key_is_ok&&("loading"!==document.readyState?apbctForceProtect():apbct_attach_event_handler(document,"DOMContentLoaded",apbctForceProtect));var ctMouseReadInterval,ctMouseWriteDataInterval,ApbctGatheringData=(()=>_createClass(function e(){_classCallCheck(this,e)},[{key:"setSessionId",value:function(){var e;apbctSessionStorage.isSet("apbct_session_id")?apbctLocalStorage.set("apbct_page_hits",Number(apbctLocalStorage.get("apbct_page_hits"))+1):(e=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(2,10),apbctSessionStorage.set("apbct_session_id",e,!1),apbctLocalStorage.set("apbct_page_hits",1),document.referrer&&new URL(document.referrer).host!==location.host&&apbctSessionStorage.set("apbct_site_referer",document.referrer,!1))}},{key:"writeReferrersToSessionStorage",value:function(){var e=apbctSessionStorage.get("apbct_session_current_page");!1!==e&&document.location.href!==e&&apbctSessionStorage.set("apbct_prev_referer",e,!1),apbctSessionStorage.set("apbct_session_current_page",document.location.href,!1)}},{key:"setCookiesType",value:function(){var e=apbctLocalStorage.get("ct_cookies_type");e&&e===ctPublic.data__cookies_type||(apbctLocalStorage.set("ct_cookies_type",ctPublic.data__cookies_type),apbctLocalStorage.delete("ct_mouse_moved"),apbctLocalStorage.delete("ct_has_scrolled"))}},{key:"startFieldsListening",value:function(){if(!apbctLocalStorage.isSet("ct_has_key_up")&&!apbctLocalStorage.get("ct_has_key_up")||!apbctLocalStorage.isSet("ct_has_input_focused")&&!apbctLocalStorage.get("ct_has_input_focused")||"native"!==ctPublic.data__cookies_type||void 0===ctGetCookie("ct_has_input_focused")||void 0===ctGetCookie("ct_has_key_up")){var e=document.forms;if(ctPublic.handled_fields=[],e&&0_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"elementBody",document.querySelector("body")),_defineProperty(this,"collectionForms",document.forms),this.setListeners()},[{key:"setListeners",value:function(){var t=this;this.elementBody.addEventListener("click",function(e){t.checkElementInForms(e,"addClicks")}),this.elementBody.addEventListener("mouseup",function(e){"Range"==document.getSelection().type.toString()&&t.addSelected()}),this.elementBody.addEventListener("mousemove",function(e){t.checkElementInForms(e,"trackMouseMovement")})}},{key:"checkElementInForms",value:function(e,t){for(var n,o=0;o_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"fieldData",{isAutoFill:!1,isUseBuffer:!1,speedDelta:0,firstKeyTimestamp:0,lastKeyTimestamp:0,lastDelta:0,countOfKey:0}),_defineProperty(this,"fields",document.querySelectorAll("textarea[name=comment]")),_defineProperty(this,"data",[])},[{key:"gatheringFields",value:function(){var n=this;Array.prototype.slice.call(this.fields).forEach(function(e,t){n.data.push(Object.assign({},n.fieldData))})}},{key:"setListeners",value:function(){var o=this;this.fields.forEach(function(e,t){e.addEventListener("paste",function(){o.data[t].isUseBuffer=!0})}),this.fields.forEach(function(e,t){e.addEventListener("onautocomplete",function(){o.data[t].isAutoFill=!0})}),this.fields.forEach(function(e,n){e.addEventListener("input",function(){o.data[n].countOfKey++;var e,t=+new Date;1===o.data[n].countOfKey?(o.data[n].lastKeyTimestamp=t,o.data[n].firstKeyTimestamp=t):(e=t-o.data[n].lastKeyTimestamp,2===o.data[n].countOfKey?(o.data[n].lastKeyTimestamp=t,o.data[n].lastDelta=e):2{function o(){_classCallCheck(this,o)}return _createClass(o,null,[{key:"getFrontendDataLog",value:function(){var e=("undefined"!=typeof ctPublicFunctions&&ctPublicFunctions.cookiePrefix?ctPublicFunctions.cookiePrefix:"")+o.LOG_KEY,t=o.LOG_KEY;if("undefined"!=typeof apbctLocalStorage&&apbctLocalStorage.get){var n=apbctLocalStorage.get(e)||apbctLocalStorage.get(t)||null;if(n&&"string"==typeof n)try{return JSON.parse(n)}catch(e){return""}return n}n=(n=localStorage.getItem(e))||localStorage.getItem(t)||null;try{return"string"==typeof n?JSON.parse(n):n}catch(e){return""}}},{key:"asDTO",value:function(){return{botd_logic_loaded:o.botdLogicLoaded,botd_wrapper_loaded:o.botdWrapperLoaded,frontend_data_log:"",transport_enabled:1}}},{key:"detectScripts",value:function(){if(o.botdWrapperLoaded&&o.botdLogicLoaded)return!0;for(var e=document.getElementsByTagName("script"),t=0;t .comment-body *[class*="comment-author"]',document.querySelector(".apbct-trp .comment-author .comment-author-link")&&(e='.apbct-trp *[class*="comment-author-link"]'),0!==(e=document.querySelectorAll(e+',.apbct-trp > .wp-block-group *[class*="comment-author"],.apbct-trp *[class*="review__author"],.apbct-trp td[class*="column-author"] > strong')).length)&&(e.forEach(function(e,t){var n,o,a,c,i,r,l,s,u;e.className.indexOf("review")<0&&"undefined"==typeof pagenow&&e.parentElement.className.indexOf("group")<0&&"DIV"!=e.tagName||e.querySelector(".comment-metadata")||((n=document.createElement("div")).setAttribute("class","apbct-real-user-badge"),(o=document.createElement("img")).setAttribute("src",d.imgPersonUrl),o.setAttribute("class","apbct-real-user-popup-img"),(a=document.createElement("div")).setAttribute("class","apbct-real-user-popup"),(r=document.createElement("strong")).append(d.phrases.trpHeading),(c=document.createElement("div")).setAttribute("class","apbct-real-user-popup-content_row"),(i=document.createElement("div")).append(" "),i.append(r),i.append(d.phrases.trpContent1),(r=document.createElement("div")).style.display="flex",r.style.gap="5px",(l=document.createElement("div")).append(d.phrases.trpContent2),r.append(l),p&&(l=document.createElement("div"),(s=document.createElement("a")).setAttribute("href",d.trpContentLink),s.setAttribute("target","_blank"),(u=document.createElement("img")).setAttribute("src",ctAdminCommon.new_window_gif),u.setAttribute("alt","New window"),u.setAttribute("style","padding-top:3px"),s.append(u),l.append(s),r.append(l)),c.append(i,r),a.append(c),n.append(o),e.append(n),e.append(a))}),document.querySelectorAll(".apbct-real-user-badge").forEach(function(o){var a=void 0,e=(t.body.addEventListener("click",function(e){-1==e.target.className.indexOf("apbct-real-user")&&-1==e.target.parentElement.className.indexOf("apbct-real-user")&&closeAllPopupTRP()}),o.addEventListener("click",function(){var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.toggle("visible")}),o.addEventListener("mouseenter",function(){closeAllPopupTRP();var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.add("visible")}),o.addEventListener("mouseleave",function(){var t=this;a=setTimeout(function(){var e=t.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.nextElementSibling);e.addEventListener("mouseenter",function(){clearTimeout(a),e.classList.add("visible")}),e.addEventListener("mouseleave",function(){a=setTimeout(function(){e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.addEventListener("touchend",function(){var n=this;a=setTimeout(function(){var e=n.nextElementSibling,t=window.getSelection();e&&t&&e.classList.contains("apbct-real-user-popup")&&0===t.toString().length?e.classList.remove("visible"):(clearTimeout(a),document.addEventListener("selectionchange",function e(){var t=window.getSelection();t&&0===t.toString().length&&(a=setTimeout(function(){var e=o.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},3e3),document.removeEventListener("selectionchange",e))}))},3e3)})})))}); diff --git a/js/apbct-public-bundle_gathering.min.js b/js/apbct-public-bundle_gathering.min.js index 7ade72da1..b0b334d0f 100644 --- a/js/apbct-public-bundle_gathering.min.js +++ b/js/apbct-public-bundle_gathering.min.js @@ -1 +1 @@ -function ownKeys(t,e){var n,o=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,n)),o}function _objectSpread(t){for(var e=1;et||r=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var n;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n{var n,e;if(r.data.forEach(function(e){e.encoded_email===a[t].dataset.originalString&&(n=e)}),!1===n.is_allowed)return{v:void 0};if(void 0===a[t].href||0!==a[t].href.indexOf("mailto:")&&0!==a[t].href.indexOf("tel:"))a[t].classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a[t])},2e3);else{if(0===a[t].href.indexOf("mailto:"))e="mailto:";else{if(0!==a[t].href.indexOf("tel:"))return 0;e="tel:"}var o=a[t].href.replace(e,"");ctReplaceInTextNodes(a[t],o,ctHtmlToText(n.decoded_email)),a[t].href=e+n.decoded_email,a[t].querySelectorAll("span.apbct-email-encoder").forEach(function(t){var n="";r.data.forEach(function(e){e.encoded_email===t.dataset.originalString&&(n=e.decoded_email)}),t.textContent=ctHtmlToText(n)})}a[t].removeEventListener("click",ctFillDecodedEmailHandler)})(t))&&e)return e.v}else{var n=r.data[0];a.classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a)},2e3),a.removeEventListener("click",ctFillDecodedEmailHandler)}}function ctReplaceInTextNodes(e,t,n){if(t){e.normalize();for(var o,a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);o=a.nextNode();)if(-1!==o.nodeValue.indexOf(t))return void(o.nodeValue=o.nodeValue.replace(t,function(){return n}))}}function ctHtmlToText(e){return e?(new DOMParser).parseFromString(String(e),"text/html").documentElement.textContent:""}function ctProcessDecodedDataResult(e,t){t.setAttribute("title",""),t.removeAttribute("style"),ctFillDecodedEmail(t,e.decoded_email)}function ctFillDecodedEmail(e,t){e.innerHTML=e.innerHTML.replace(/.+?(
)/,t+"$1")}var ctEmailDecoderIsInitialized=!1,cleantalkModal=(document.addEventListener("DOMContentLoaded",function(){if(!ctEmailDecoderIsInitialized){ctEmailDecoderIsInitialized=!0;var e=document.querySelectorAll("[data-original-string]");if("undefined"!=typeof ctPublic&&(ctPublic.encodedEmailNodes=e),e.length)for(var t=0;t$1')):(r.innerHTML="Loading...",t&&this.load(t)),r.setAttribute("id","cleantalk-modal-content"),n.append(r),this.opened=!0},confirm:function(e){var t,n=1_createClass(function e(t){_classCallCheck(this,e),_defineProperty(this,"ajax_parameters",{}),_defineProperty(this,"restParameters",{}),_defineProperty(this,"selector",null),_defineProperty(this,"elements",[]),_defineProperty(this,"eventCallback",void 0),_defineProperty(this,"eventSelector",void 0),_defineProperty(this,"event",void 0),this.select(t)},[{key:"select",value:function(e){return e instanceof HTMLCollection?(this.selector=null,this.elements=[],this.elements=Array.prototype.slice.call(e)):"object"===_typeof(e)?(this.selector=null,this.elements=[],this.elements[0]=e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect(),this}},{key:"addElement",value:function(e){"object"===_typeof(e)?this.elements.push(e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect()}},{key:"push",value:function(e){this.elements.push(e)}},{key:"reduce",value:function(){this.elements=this.elements.slice(0,-1)}},{key:"deselect",value:function(){this.elements=[]}},{key:"css",value:function(e,t){if(t=t||!1,"object"===_typeof(e)){for(var n in e)if(Object.hasOwn(e,n))for(var o=n.replace(/([-_][a-z])/g,function(e){return e.toUpperCase().replace("-","").replace("_","")}),a=0;a(e=document.createElement(e).constructor,!Boolean(~[HTMLElement,HTMLUnknownElement].indexOf(e))))(t)?n||e.tagName.toLowerCase()===t.toLowerCase():t.match(/^[a-z]/)?n||Boolean(e[t]):n||(null!==this.selector?null!==document.querySelector(this.selector+t):this.isWithoutSelector(e,t)):n}},{key:"isWithoutSelector",value:function(e,t){var n,o=!1,a=_createForOfIteratorHelper(document.querySelectorAll(t));try{for(a.s();!(n=a.n()).done;)o=o||e===n.value}catch(e){a.e(e)}finally{a.f()}return o}},{key:"filter",value:function(e){this.selector=null;for(var t=this.elements.length-1;0<=t;t--)this.isElem(this.elements[t],e)||this.elements.splice(Number(t),1);return this}},{key:"parent",value:function(e){return this.select(this.elements[0].parentElement),void 0===e||this.is(e)||this.deselect(),this}},{key:"parents",value:function(e){for(this.select(this.elements[0]);null!==this.elements[this.elements.length-1].parentElement;)this.push(this.elements[this.elements.length-1].parentElement);return this.elements.splice(0,1),void 0!==e&&this.filter(e),this}},{key:"children",value:function(e){return this.select(this.elements[0].children),void 0!==e&&this.filter(e),this}},{key:"siblings",value:function(e){var t=this.elements[0];return this.parent(),this.children(e),this.elements.splice(this.elements.indexOf(t),1),this}},{key:"remove",value:function(){var e,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(e=t.n()).done;)e.value.remove()}catch(e){t.e(e)}finally{t.f()}}},{key:"after",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.after(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"append",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.append(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"fadeIn",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity+(new Date-n)/o,n=+new Date,+t.style.opacity<1&&(window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16))}var t=a.value,n=(t.style.opacity=0,t.style.display="block",+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}},{key:"fadeOut",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity-(new Date-n)/o,n=+new Date,0<+t.style.opacity?window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16):t.style.display="none"}var t=a.value,n=(t.style.opacity=1,+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}}]))());function selectActualNonce(){var e="";return ctPublicFunctions.hasOwnProperty("_fresh_nonce")&&"string"==typeof ctPublicFunctions._fresh_nonce&&0{function o(e){for(var t in _classCallCheck(this,o),_defineProperty(this,"xhr",new XMLHttpRequest),_defineProperty(this,"method","POST"),_defineProperty(this,"url",""),_defineProperty(this,"async",!0),_defineProperty(this,"user",null),_defineProperty(this,"password",null),_defineProperty(this,"data",{}),_defineProperty(this,"button",null),_defineProperty(this,"spinner",null),_defineProperty(this,"progressbar",null),_defineProperty(this,"context",this),_defineProperty(this,"callback",null),_defineProperty(this,"onErrorCallback",null),_defineProperty(this,"responseType","json"),_defineProperty(this,"headers",{}),_defineProperty(this,"timeout",15e3),_defineProperty(this,"methods_to_convert_data_to_URL",["GET","HEAD"]),_defineProperty(this,"body",null),_defineProperty(this,"http_code",0),_defineProperty(this,"status_text",""),e)void 0!==this[t]&&(this[t]=e[t]);if(this.prepare(),Object.keys(this.data).length&&(this.deleteDoubleJSONEncoding(this.data),this.convertData()),!this.url)return console.log("%cXHR%c not URL provided","color: red; font-weight: bold;","color: grey; font-weight: normal;"),!1;this.xhr.open(this.method,this.url,this.async,this.user,this.password),this.setHeaders(),this.xhr.responseType=this.responseType,this.xhr.timeout=this.timeout,this.xhr.onreadystatechange=function(){this.isWpNonceError()?this.getFreshNonceAndRerunXHR(e):this.onReadyStateChange()}.bind(this),this.xhr.onload=function(){this.onLoad()}.bind(this),this.xhr.onprogress=function(e){this.onProgress(e)}.bind(this),this.xhr.onerror=function(){this.onError()}.bind(this),this.xhr.ontimeout=function(){this.onTimeout()}.bind(this),this.xhr.send(this.body)}return _createClass(o,[{key:"prepare",value:function(){this.button&&(this.button.setAttribute("disabled","disabled"),this.button.style.cursor="not-allowed"),this.spinner&&(this.spinner.style.display="inline")}},{key:"complete",value:function(){this.http_code=this.xhr.status,this.status_text=this.xhr.statusText,this.button&&(this.button.removeAttribute("disabled"),this.button.style.cursor="auto"),this.spinner&&(this.spinner.style.display="none"),this.progressbar&&this.progressbar.fadeOut("slow")}},{key:"onReadyStateChange",value:function(){null!==this.on_ready_state_change&&"function"==typeof this.on_ready_state_change&&this.on_ready_state_change()}},{key:"onProgress",value:function(e){null!==this.on_progress&&"function"==typeof this.on_progress&&this.on_progress()}},{key:"onError",value:function(){console.log("error"),this.complete(),this.error(this.http_code,this.status_text),null!==this.onErrorCallback&&"function"==typeof this.onErrorCallback&&this.onErrorCallback(this.status_text)}},{key:"onTimeout",value:function(){this.complete(),this.error(0,"timeout"),null!==this.onErrorCallback&&"function"==typeof this.onErrorCallback&&this.onErrorCallback("Timeout")}},{key:"onLoad",value:function(){if(this.complete(),"json"===this.responseType){if(null===this.xhr.response)return this.error(this.http_code,this.status_text,"No response"),!1;if(void 0!==this.xhr.response.error)return this.error(this.http_code,this.status_text,this.xhr.response.error),!1}null!==this.callback&&"function"==typeof this.callback&&this.callback.call(this.context,this.xhr.response,this.data)}},{key:"isWpNonceError",value:function(){var e=!1,t=!1;return 4==this.xhr.readyState&&(e="object"===_typeof(this.xhr.response)&&null!==this.xhr.response&&this.xhr.response.hasOwnProperty("data")&&this.xhr.response.data.hasOwnProperty("status")&&403===this.xhr.response.data.status,t="-1"===this.xhr.response&&403===this.xhr.status),e||t}},{key:"getFreshNonceAndRerunXHR",value:function(e){var t,n="";e.hasOwnProperty("headers")&&e.headers.hasOwnProperty("X-WP-Nonce")&&(n=e.headers["X-WP-Nonce"]),""!==(n=e.hasOwnProperty("data")&&e.data.hasOwnProperty("_ajax_nonce")?e.data._ajax_nonce:n)&&((t={method:"POST"}).data={spbc_remote_call_action:"get_fresh_wpnonce",plugin_name:"antispam",nonce_prev:n,initial_request_params:e},t.notJson=!0,t.url=ctPublicFunctions._ajax_url,t.callback=function(){for(var e=arguments.length,t=new Array(e),n=0;n{function o(){for(var e=arguments.length,t=new Array(e),n=0;n{function a(){for(var e=arguments.length,t=new Array(e),n=0;n{return _createClass(function e(){_classCallCheck(this,e),this.config=ApbctFetchProxyConfig},[{key:"findMatchingConfig",value:function(e){for(var t="string"==typeof e?e:null!=e&&"string"==typeof e.href?e.href:"",n=0,o=Object.entries(this.config);nMath.floor((new Date).getTime()/1e3)},isSet:function(e){return null!==localStorage.getItem(e)},delete:function(e){localStorage.removeItem(e)},getCleanTalkData:function(){for(var e={},t=0;t_createClass(function e(){_classCallCheck(this,e)},[{key:"attachEventTokenToMultipageGravityForms",value:function(){document.addEventListener("gform_page_loaded",function(){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||"function"!=typeof setEventTokenField||"function"!=typeof botDetectorLocalStorage||setEventTokenField(botDetectorLocalStorage.get("bot_detector_event_token"))})}},{key:"attachEventTokenToWoocommerceGetRequestAddToCart",value:function(){ctPublic.wc_ajax_add_to_cart||document.querySelectorAll("a.add_to_cart_button:not(.product_type_variable):not(.wc-interactive)").forEach(function(o){o.addEventListener("click",function(e){var t=o.getAttribute("href"),n=apbctLocalStorage.get("bot_detector_event_token");n&&(-1===t.indexOf("?")?t+="?":t+="&",o.setAttribute("href",t+="ct_bot_detector_event_token="+n))})})}},{key:"restartBotDetectorEventTokenAttach",value:function(){var e,t=0_createClass(function e(){_classCallCheck(this,e)},[{key:"attachHiddenFieldsToForms",value:function(e){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||+ctPublic.bot_detector_enabled&&!e||(ctNoCookieAttachHiddenFieldsToForms(),document.addEventListener("gform_page_loaded",ctNoCookieAttachHiddenFieldsToForms))}},{key:"attachVisibleFieldsToForm",value:function(e,t){var n=document.createElement("input"),t=(n.setAttribute("type","hidden"),n.setAttribute("id","apbct_visible_fields_"+t),n.setAttribute("name","apbct_visible_fields"),{});t[0]=this.collectVisibleFields(e),n.value=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),e.append(n)}},{key:"attachVisibleFieldsDuringSubmit",value:function(e,t){"native"!==ctPublic.data__cookies_type&&void 0!==e.target.ctFormIndex&&this.setVisibleFieldsCookie(this.collectVisibleFields(t),e.target.ctFormIndex)}},{key:"constructNoCookieHiddenField",value:function(e){var t="hidden",e=("submit"===e&&(t="submit"),""),n=getCleanTalkStorageDataArray(),n=JSON.stringify(n);return n="_ct_no_cookie_data_"+btoa(unescape(encodeURIComponent(n))),(e=document.createElement("input")).setAttribute("name","ct_no_cookie_hidden_field"),e.setAttribute("value",n),e.setAttribute("type",t),e.classList.add("apbct_special_field"),e.classList.add("ct_no_cookie_hidden_field"),e}},{key:"attachNoCookieDuringSubmit",value:function(e){"none"===ctPublic.data__cookies_type&&e.target&&e.target.action&&-1!==e.target.action.toString().indexOf("mailpoet_subscription_form")&&(window.XMLHttpRequest.prototype.send=function(e){var t,n;+ctPublic.bot_detector_enabled?(t=(new ApbctHandler).toolGetEventToken())&&(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+("data%5Bct_bot_detector_event_token%5D="+t+"&")+e)):(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+e)),setTimeout(function(){window.XMLHttpRequest.prototype.send=defaultSend},0)})}},{key:"setVisibleFieldsCookie",value:function(e,t){var n="object"===_typeof(e)&&null!==e?e:{};if("native"===ctPublic.data__cookies_type)for(var o in n){if(10{function p(){_classCallCheck(this,p)}return _createClass(p,[{key:"excludeForm",value:function(e){return!!this.checkHiddenFieldsExclusions(e,"visible_fields")||!!(e.querySelector('input[name="wspsc_add_cart_submit"]')||e.querySelector('input[name="option"][value="com_vikrentcar"]')||e.querySelector('input[name="option"][value="com_vikbooking"]'))||void 0!==e.elements.apbct_visible_fields&&0{var n=_asyncToGenerator(_regenerator().m(function e(t,n){var o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(+ctPublic.settings__forms__check_external){e.n=1;break}return e.a(2,!1);case 1:o=_createForOfIteratorHelper(r),e.p=2,o.s();case 3:if((a=o.n()).done)e.n=6;else{if((a=a.value).matches(t,n))return a=a.getForm(),e.n=4,c(a);e.n=5}break;case 4:if(e.v)return e.a(2,!0);e.n=5;break;case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,a=e.v,o.e(a);case 8:return e.p=8,o.f(),e.f(8);case 9:return e.a(2,!1)}},e,null,[[2,7,8,9]])}));return function(e,t){return n.apply(this,arguments)}})(),r=[{name:"bitrix24",matches:function(e,t){return document.querySelector(".b24-form")&&e.includes("bitrix/services/main/ajax.php?action=crm.site.form.fill")&&t[1].body instanceof FormData},getForm:function(){return document.querySelector(".b24-form form")}},{name:"sender",matches:function(e,t){return e.includes("stats.sender.net/forms")&&"string"==typeof t[1].body},getForm:function(){for(var e=document.querySelectorAll("iframe"),t=0;t{var t=_asyncToGenerator(_regenerator().m(function e(t){var n,o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}return e.a(2,!1);case 1:return n=i(t),m=!0,e.p=2,e.n=3,new Promise(function(e,t){apbct_public_sendAJAX(n,{async:!0,callback:e,onErrorCallback:t})});case 3:return o=e.v,(a=void 0!==o.apbct&&+o.apbct.blocked||void 0!==o.data&&void 0!==o.data.message)&&(new ApbctShowForbidden).parseBlockMessage(o),e.a(2,a);case 4:return e.p=4,e.a(2,!1);case 5:return e.p=5,m=!1,e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(e){return t.apply(this,arguments)}})(),i=function(e){var t,n={action:"cleantalk_force_ajax_check"},o=_createForOfIteratorHelper(e.elements);try{for(o.s();!(t=o.n()).done;){var a=t.value;a.name&&(n[a.name]=a.value)}}catch(e){o.e(e)}finally{o.f()}return+ctPublic.bot_detector_enabled?n.ct_bot_detector_event_token=apbctLocalStorage.get("bot_detector_event_token"):n.ct_no_cookie_hidden_field=getNoCookieData(),n};window.fetch=_asyncToGenerator(_regenerator().m(function e(){var t,n,o,a,r,c,i,l,s,u,d,p=arguments;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:for(t=p.length,n=new Array(t),o=0;o!(!t||"string"!=typeof t)&&["google.com/recaptcha","gstatic.com/recaptcha","recaptcha.google.com","recaptcha.net","www.google.com/recaptcha","apis.google.com","paypal.com","api.paypal.com","www.paypal.com","js.stripe.com","api.stripe.com","checkout.stripe.com","api.doboard.com"].some(function(e){return t.includes(e)}))(a="string"==typeof n[0]?n[0]:(null==(a=n[0])?void 0:a.url)||""))return e.a(2,h.apply(this,n));e.n=2;break;case 2:if(n&&n[0]&&n[1]&&n[1].body){e.n=3;break}return e.a(2,h.apply(this,n));case 3:return e.n=4,b.processFetch(n);case 4:if(!0===e.v)return e.a(2,Promise.reject(new Error("Forbidden")));e.n=5;break;case 5:if(0{try{return n[0].includes(new URL(ctPublicFunctions._rest_url).pathname+"metform/")}catch(e){}})()))try{n[1].body=f(n[1].body,_(+ctPublic.bot_detector_enabled))}catch(e){}if(0{var t=e.value;"undefined"!=typeof ctPublic&&1==+ctPublic.settings__forms__search_test&&null!==t.getAttribute("apbct-form-sign")&&"native_search"===t.getAttribute("apbct-form-sign")&&(t.apbctSearchPrevOnsubmit=t.onsubmit,t.onsubmit=function(e){return n.searchFormHandler(e,t)})})()}catch(e){t.e(e)}finally{t.f()}}},{key:"searchFormHandler",value:function(e,t){try{var n,o,a,r=t.querySelector('[name*="apbct__email_id__"]'),c=null,i=(null!==r&&null!==r.value&&(c=r.value),getCleanTalkStorageDataArray()),l=apbctLocalStorage.get("bot_detector_event_token");null===i&&null===r&&null===l||(e.preventDefault(),n=function(){null!==r&&r.parentNode.removeChild(r),"function"==typeof t.apbctSearchPrevOnsubmit?t.apbctSearchPrevOnsubmit():HTMLFormElement.prototype.submit.call(t)},o=i,null!==c&&(o.apbct_search_form__honeypot_value=c),o.ct_bot_detector_event_token=l,"string"==typeof o.apbct_pixel_url&&-1!==o.apbct_pixel_url.indexOf("%3A")&&(o.apbct_pixel_url=decodeURIComponent(o.apbct_pixel_url)),void 0!==(a=JSON.stringify(o))&&0!==a.length?ctSetAlternativeCookie(a,{callback:n,onErrorCallback:n,forceAltCookies:!0}):n())}catch(e){console.warn("APBCT search form onsubmit handler error. "+e)}}},{key:"toolForAntiCrawlerCheckDuringBotDetector",value:function(){var e=setInterval(function(){localStorage.bot_detector_event_token&&(ctSetCookie("apbct_bot_detector_exist","1","3600"),clearInterval(e))},500)}},{key:"toolGetEventToken",value:function(){var t=localStorage.getItem("bot_detector_event_token");try{t=JSON.parse(t)}catch(e){t=!1}return!(null===t||!1===t||!t.hasOwnProperty("value")||""===t.value)&&t.value}}])})(),ApbctShowForbidden=(()=>_createClass(function e(){_classCallCheck(this,e)},[{key:"prepareBlockForAjaxForms",value:function(){var o=function(e){if(e.responseText&&-1!==e.responseText.indexOf('"apbct')&&-1===e.responseText.indexOf("DOCTYPE"))try{this.parseBlockMessage(JSON.parse(e.responseText))}catch(e){console.log(e.toString())}}.bind(this);"undefined"!=typeof jQuery?"function"!=typeof jQuery(document).ajaxComplete()?jQuery(document).on("ajaxComplete",function(e,t,n){o(t)}):jQuery(document).ajaxComplete(function(e,t,n){o(t)}):"undefined"!=typeof XMLHttpRequest&&document.addEventListener("readystatechange",function(e){4===e.target.readyState&&o(e.target)})}},{key:"parseBlockMessage",value:function(e){var t,n="";if((void 0!==e.apbct&&(e=e.apbct).blocked&&(n=e.comment),n=void 0!==e.data&&void 0!==(e=e.data).message?e.message:n)&&(document.dispatchEvent(new CustomEvent("apbctAjaxBockAlert",{bubbles:!0,detail:{message:n}})),cleantalkModal.loaded=n,cleantalkModal.open(),1==+e.stop_script&&(window.stop(),e.integration&&"NEXForms"===e.integration&&((t=document.querySelector("form.submit-nex-form button.nex-submit"))&&(t.disabled=!0,t.style.opacity="0.5",t.style.cursor="not-allowed",t.style.pointerEvents="none",t.style.backgroundColor="#ccc",t.style.color="#fff"),t=document.querySelector("div.nex_success_message"))&&(t.style.display="none"),e.integration)&&"ElfsightForm"===e.integration)){var o=[document];try{document.querySelectorAll("iframe").forEach(function(e){try{e.contentDocument&&o.push(e.contentDocument)}catch(e){}})}catch(e){}for(var a=0,r=o;a_createClass(function e(){_classCallCheck(this,e)},[{key:"extract",value:function(e){if(e&&"string"==typeof e){try{e=decodeURIComponent(e)}catch(e){return!1}var t=document.querySelectorAll("form"),n=this.getIdFromAjax(e);if(n){var o,a=_createForOfIteratorHelper(t);try{for(a.s();!(o=a.n()).done;){var r=o.value,c=this.findParentContainer(r);if(c){var i=this.getIdFromHTML(c);if(i===n){var l=c.querySelector("input[id^=apbct_visible_fields_]");if(null!=l&&l.value)return l.value}}}}catch(e){a.e(e)}finally{a.f()}}}return!1}},{key:"getIdFromAjax",value:function(e){return console.warn("getIdFromAjax must be implemented by child class"),null}},{key:"findParentContainer",value:function(e){return console.warn("findParentContainer must be implemented by child class"),null}},{key:"getIdFromHTML",value:function(e){return console.warn("getIdFromHTML must be implemented by child class"),null}}],[{key:"createExtractor",value:function(e){switch(e){case"action=nf_ajax_submit":return new ApbctNinjaFormsVisibleFields;case"action=mailpoet":return new ApbctMailpoetVisibleFields;default:return null}}}]))(),ApbctNinjaFormsVisibleFields=(()=>{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/"id"\s*:\s*"?(\d+)"/,/form_id\s*[:\s]*"?(\d+)"/,/nf-form-(\d+)/,/"id":(\d+)/];t{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/form_id\s*[:\s]*"?(\d+)"/,/data\[form_id\]=(\d+)/,/form_id=(\d+)/];t_createClass(function e(){_classCallCheck(this,e)},[{key:"setSessionId",value:function(){var e;apbctSessionStorage.isSet("apbct_session_id")?apbctLocalStorage.set("apbct_page_hits",Number(apbctLocalStorage.get("apbct_page_hits"))+1):(e=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(2,10),apbctSessionStorage.set("apbct_session_id",e,!1),apbctLocalStorage.set("apbct_page_hits",1),document.referrer&&new URL(document.referrer).host!==location.host&&apbctSessionStorage.set("apbct_site_referer",document.referrer,!1))}},{key:"writeReferrersToSessionStorage",value:function(){var e=apbctSessionStorage.get("apbct_session_current_page");!1!==e&&document.location.href!==e&&apbctSessionStorage.set("apbct_prev_referer",e,!1),apbctSessionStorage.set("apbct_session_current_page",document.location.href,!1)}},{key:"setCookiesType",value:function(){var e=apbctLocalStorage.get("ct_cookies_type");e&&e===ctPublic.data__cookies_type||(apbctLocalStorage.set("ct_cookies_type",ctPublic.data__cookies_type),apbctLocalStorage.delete("ct_mouse_moved"),apbctLocalStorage.delete("ct_has_scrolled"))}},{key:"startFieldsListening",value:function(){if(!apbctLocalStorage.isSet("ct_has_key_up")&&!apbctLocalStorage.get("ct_has_key_up")||!apbctLocalStorage.isSet("ct_has_input_focused")&&!apbctLocalStorage.get("ct_has_input_focused")||"native"!==ctPublic.data__cookies_type||void 0===ctGetCookie("ct_has_input_focused")||void 0===ctGetCookie("ct_has_key_up")){var e=ctGetPageForms();if(ctPublic.handled_fields=[],0_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"elementBody",document.querySelector("body")),_defineProperty(this,"collectionForms",document.forms),this.setListeners()},[{key:"setListeners",value:function(){var t=this;this.elementBody.addEventListener("click",function(e){t.checkElementInForms(e,"addClicks")}),this.elementBody.addEventListener("mouseup",function(e){"Range"==document.getSelection().type.toString()&&t.addSelected()}),this.elementBody.addEventListener("mousemove",function(e){t.checkElementInForms(e,"trackMouseMovement")})}},{key:"checkElementInForms",value:function(e,t){for(var n,o=0;o_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"fieldData",{isAutoFill:!1,isUseBuffer:!1,speedDelta:0,firstKeyTimestamp:0,lastKeyTimestamp:0,lastDelta:0,countOfKey:0}),_defineProperty(this,"fields",document.querySelectorAll("textarea[name=comment]")),_defineProperty(this,"data",[])},[{key:"gatheringFields",value:function(){var n=this;Array.prototype.slice.call(this.fields).forEach(function(e,t){n.data.push(Object.assign({},n.fieldData))})}},{key:"setListeners",value:function(){var o=this;this.fields.forEach(function(e,t){e.addEventListener("paste",function(){o.data[t].isUseBuffer=!0})}),this.fields.forEach(function(e,t){e.addEventListener("onautocomplete",function(){o.data[t].isAutoFill=!0})}),this.fields.forEach(function(e,n){e.addEventListener("input",function(){o.data[n].countOfKey++;var e,t=+new Date;1===o.data[n].countOfKey?(o.data[n].lastKeyTimestamp=t,o.data[n].firstKeyTimestamp=t):(e=t-o.data[n].lastKeyTimestamp,2===o.data[n].countOfKey?(o.data[n].lastKeyTimestamp=t,o.data[n].lastDelta=e):2{function o(){_classCallCheck(this,o)}return _createClass(o,null,[{key:"getFrontendDataLog",value:function(){var e=("undefined"!=typeof ctPublicFunctions&&ctPublicFunctions.cookiePrefix?ctPublicFunctions.cookiePrefix:"")+o.LOG_KEY,t=o.LOG_KEY;if(void 0!==apbctLocalStorage&&apbctLocalStorage.get){var n=apbctLocalStorage.get(e)||apbctLocalStorage.get(t)||null;if(n&&"string"==typeof n)try{return JSON.parse(n)}catch(e){return""}return n}n=(n=localStorage.getItem(e))||localStorage.getItem(t)||null;try{return"string"==typeof n?JSON.parse(n):n}catch(e){return""}}},{key:"asDTO",value:function(){return{botd_logic_loaded:o.botdLogicLoaded,botd_wrapper_loaded:o.botdWrapperLoaded,frontend_data_log:"",transport_enabled:1}}},{key:"detectScripts",value:function(){if(o.botdWrapperLoaded&&o.botdLogicLoaded)return!0;for(var e=document.getElementsByTagName("script"),t=0;t .comment-body *[class*="comment-author"]',document.querySelector(".apbct-trp .comment-author .comment-author-link")&&(e='.apbct-trp *[class*="comment-author-link"]'),0!==(e=document.querySelectorAll(e+',.apbct-trp > .wp-block-group *[class*="comment-author"],.apbct-trp *[class*="review__author"],.apbct-trp td[class*="column-author"] > strong')).length)&&(e.forEach(function(e,t){var n,o,a,r,c,i,l,s,u;e.className.indexOf("review")<0&&"undefined"==typeof pagenow&&e.parentElement.className.indexOf("group")<0&&"DIV"!=e.tagName||e.querySelector(".comment-metadata")||((n=document.createElement("div")).setAttribute("class","apbct-real-user-badge"),(o=document.createElement("img")).setAttribute("src",d.imgPersonUrl),o.setAttribute("class","apbct-real-user-popup-img"),(a=document.createElement("div")).setAttribute("class","apbct-real-user-popup"),(i=document.createElement("strong")).append(d.phrases.trpHeading),(r=document.createElement("div")).setAttribute("class","apbct-real-user-popup-content_row"),(c=document.createElement("div")).append(" "),c.append(i),c.append(d.phrases.trpContent1),(i=document.createElement("div")).style.display="flex",i.style.gap="5px",(l=document.createElement("div")).append(d.phrases.trpContent2),i.append(l),p&&(l=document.createElement("div"),(s=document.createElement("a")).setAttribute("href",d.trpContentLink),s.setAttribute("target","_blank"),(u=document.createElement("img")).setAttribute("src",ctAdminCommon.new_window_gif),u.setAttribute("alt","New window"),u.setAttribute("style","padding-top:3px"),s.append(u),l.append(s),i.append(l)),r.append(c,i),a.append(r),n.append(o),e.append(n),e.append(a))}),document.querySelectorAll(".apbct-real-user-badge").forEach(function(o){var a=void 0,e=(t.body.addEventListener("click",function(e){-1==e.target.className.indexOf("apbct-real-user")&&-1==e.target.parentElement.className.indexOf("apbct-real-user")&&closeAllPopupTRP()}),o.addEventListener("click",function(){var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.toggle("visible")}),o.addEventListener("mouseenter",function(){closeAllPopupTRP();var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.add("visible")}),o.addEventListener("mouseleave",function(){var t=this;a=setTimeout(function(){var e=t.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.nextElementSibling);e.addEventListener("mouseenter",function(){clearTimeout(a),e.classList.add("visible")}),e.addEventListener("mouseleave",function(){a=setTimeout(function(){e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.addEventListener("touchend",function(){var n=this;a=setTimeout(function(){var e=n.nextElementSibling,t=window.getSelection();e&&t&&e.classList.contains("apbct-real-user-popup")&&0===t.toString().length?e.classList.remove("visible"):(clearTimeout(a),document.addEventListener("selectionchange",function e(){var t=window.getSelection();t&&0===t.toString().length&&(a=setTimeout(function(){var e=o.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},3e3),document.removeEventListener("selectionchange",e))}))},3e3)})})))}); \ No newline at end of file +function _callSuper(e,t,n){return t=_getPrototypeOf(t),_possibleConstructorReturn(e,_isNativeReflectConstruct()?Reflect.construct(t,n||[],_getPrototypeOf(e).constructor):t.apply(e,n))}function _possibleConstructorReturn(e,t){if(t&&("object"==_typeof(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_isNativeReflectConstruct=function(){return!!e})()}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function ownKeys(t,e){var n,o=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,n)),o}function _objectSpread(t){for(var e=1;et||c=e.length?{done:!0}:{done:!1,value:e[c++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var n;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n{var n,e;if(c.data.forEach(function(e){e.encoded_email===a[t].dataset.originalString&&(n=e)}),!1===n.is_allowed)return{v:void 0};if(void 0===a[t].href||0!==a[t].href.indexOf("mailto:")&&0!==a[t].href.indexOf("tel:"))a[t].classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a[t])},2e3);else{if(0===a[t].href.indexOf("mailto:"))e="mailto:";else{if(0!==a[t].href.indexOf("tel:"))return 0;e="tel:"}var o=a[t].href.replace(e,"");ctReplaceInTextNodes(a[t],o,ctHtmlToText(n.decoded_email)),a[t].href=e+n.decoded_email,a[t].querySelectorAll("span.apbct-email-encoder").forEach(function(t){var n="";c.data.forEach(function(e){e.encoded_email===t.dataset.originalString&&(n=e.decoded_email)}),t.textContent=ctHtmlToText(n)})}a[t].removeEventListener("click",ctFillDecodedEmailHandler)})(t))&&e)return e.v}else{var n=c.data[0];a.classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a)},2e3),a.removeEventListener("click",ctFillDecodedEmailHandler)}}function ctReplaceInTextNodes(e,t,n){if(t){e.normalize();for(var o,a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);o=a.nextNode();)if(-1!==o.nodeValue.indexOf(t))return void(o.nodeValue=o.nodeValue.replace(t,function(){return n}))}}function ctHtmlToText(e){return e?(new DOMParser).parseFromString(String(e),"text/html").documentElement.textContent:""}function ctProcessDecodedDataResult(e,t){t.setAttribute("title",""),t.removeAttribute("style"),ctFillDecodedEmail(t,e.decoded_email)}function ctFillDecodedEmail(e,t){e.innerHTML=e.innerHTML.replace(/.+?(
)/,t+"$1")}var ctEmailDecoderIsInitialized=!1,cleantalkModal=(document.addEventListener("DOMContentLoaded",function(){if(!ctEmailDecoderIsInitialized){ctEmailDecoderIsInitialized=!0;var e=document.querySelectorAll("[data-original-string]");if("undefined"!=typeof ctPublic&&(ctPublic.encodedEmailNodes=e),e.length)for(var t=0;t$1')):(c.innerHTML="Loading...",t&&this.load(t)),c.setAttribute("id","cleantalk-modal-content"),n.append(c),this.opened=!0},confirm:function(e){var t,n=1_createClass(function e(t){_classCallCheck(this,e),_defineProperty(this,"ajax_parameters",{}),_defineProperty(this,"restParameters",{}),_defineProperty(this,"selector",null),_defineProperty(this,"elements",[]),_defineProperty(this,"eventCallback",void 0),_defineProperty(this,"eventSelector",void 0),_defineProperty(this,"event",void 0),this.select(t)},[{key:"select",value:function(e){return e instanceof HTMLCollection?(this.selector=null,this.elements=[],this.elements=Array.prototype.slice.call(e)):"object"===_typeof(e)?(this.selector=null,this.elements=[],this.elements[0]=e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect(),this}},{key:"addElement",value:function(e){"object"===_typeof(e)?this.elements.push(e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect()}},{key:"push",value:function(e){this.elements.push(e)}},{key:"reduce",value:function(){this.elements=this.elements.slice(0,-1)}},{key:"deselect",value:function(){this.elements=[]}},{key:"css",value:function(e,t){if(t=t||!1,"object"===_typeof(e)){for(var n in e)if(Object.hasOwn(e,n))for(var o=n.replace(/([-_][a-z])/g,function(e){return e.toUpperCase().replace("-","").replace("_","")}),a=0;a(e=document.createElement(e).constructor,!Boolean(~[HTMLElement,HTMLUnknownElement].indexOf(e))))(t)?n||e.tagName.toLowerCase()===t.toLowerCase():t.match(/^[a-z]/)?n||Boolean(e[t]):n||(null!==this.selector?null!==document.querySelector(this.selector+t):this.isWithoutSelector(e,t)):n}},{key:"isWithoutSelector",value:function(e,t){var n,o=!1,a=_createForOfIteratorHelper(document.querySelectorAll(t));try{for(a.s();!(n=a.n()).done;)o=o||e===n.value}catch(e){a.e(e)}finally{a.f()}return o}},{key:"filter",value:function(e){this.selector=null;for(var t=this.elements.length-1;0<=t;t--)this.isElem(this.elements[t],e)||this.elements.splice(Number(t),1);return this}},{key:"parent",value:function(e){return this.select(this.elements[0].parentElement),void 0===e||this.is(e)||this.deselect(),this}},{key:"parents",value:function(e){for(this.select(this.elements[0]);null!==this.elements[this.elements.length-1].parentElement;)this.push(this.elements[this.elements.length-1].parentElement);return this.elements.splice(0,1),void 0!==e&&this.filter(e),this}},{key:"children",value:function(e){return this.select(this.elements[0].children),void 0!==e&&this.filter(e),this}},{key:"siblings",value:function(e){var t=this.elements[0];return this.parent(),this.children(e),this.elements.splice(this.elements.indexOf(t),1),this}},{key:"remove",value:function(){var e,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(e=t.n()).done;)e.value.remove()}catch(e){t.e(e)}finally{t.f()}}},{key:"after",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.after(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"append",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.append(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"fadeIn",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity+(new Date-n)/o,n=+new Date,+t.style.opacity<1&&(window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16))}var t=a.value,n=(t.style.opacity=0,t.style.display="block",+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}},{key:"fadeOut",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity-(new Date-n)/o,n=+new Date,0<+t.style.opacity?window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16):t.style.display="none"}var t=a.value,n=(t.style.opacity=1,+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}}]))());function apbct(e){return(new ApbctCore).select(e)}Object.prototype.hasOwn||Object.defineProperty(Object.prototype,"hasOwn",{value:function(e){return Object.prototype.hasOwnProperty.call(this,e)},enumerable:!1,configurable:!0,writable:!0});var ApbctFetchProxyCallbacks={mailchimpBlock:function(e){try{for(var t=localStorage.length-1;0<=t;t--){var n=localStorage.key(t);n&&-1!==n.indexOf("mcforms")&&localStorage.removeItem(n)}}catch(e){console.warn("Error clearing localStorage by mcforms mask:",e)}}},ApbctFetchProxyConfig={mailchimp:{selector:".mcforms-wrapper",urlPattern:"mcf-integrations-mcmktg.mlchmpcompprduse2.iks2.a.intuit.com/gateway/receive",externalForm:!0,action:"cleantalk_force_mailchimp_shadowroot_check",callbackAllow:!1,callbackBlock:ApbctFetchProxyCallbacks.mailchimpBlock},otterform:{selector:".otter-form__container",urlPattern:"otter/v1/form/frontend",externalForm:!1,action:"cleantalk_force_otterform_check",callbackAllow:!1,callbackBlock:!1},elfsight:{selector:'[class*="elfsight-app"]',urlPattern:"data.elfsight.com/public/resources/form-submissions",externalForm:!0,action:"cleantalk_force_elfsight_check",payloadKey:"elfsight_payload",callbackAllow:!1,callbackBlock:!1}},ApbctFetchProxyProtection=(()=>{return _createClass(function e(){_classCallCheck(this,e),this.config=ApbctFetchProxyConfig},[{key:"findMatchingConfig",value:function(e){for(var t="string"==typeof e?e:null!=e&&"string"==typeof e.href?e.href:"",n=0,o=Object.entries(this.config);n_createClass(function e(){_classCallCheck(this,e)},[{key:"attachEventTokenToMultipageGravityForms",value:function(){document.addEventListener("gform_page_loaded",function(){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||"function"!=typeof setEventTokenField||"function"!=typeof botDetectorLocalStorage||setEventTokenField(botDetectorLocalStorage.get("bot_detector_event_token"))})}},{key:"attachEventTokenToWoocommerceGetRequestAddToCart",value:function(){ctPublic.wc_ajax_add_to_cart||document.querySelectorAll("a.add_to_cart_button:not(.product_type_variable):not(.wc-interactive)").forEach(function(o){o.addEventListener("click",function(e){var t=o.getAttribute("href"),n=apbctLocalStorage.get("bot_detector_event_token");n&&(-1===t.indexOf("?")?t+="?":t+="&",o.setAttribute("href",t+="ct_bot_detector_event_token="+n))})})}},{key:"restartBotDetectorEventTokenAttach",value:function(){var e,t=0_createClass(function e(){_classCallCheck(this,e)},[{key:"attachHiddenFieldsToForms",value:function(e){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||+ctPublic.bot_detector_enabled&&!e||(ctNoCookieAttachHiddenFieldsToForms(),document.addEventListener("gform_page_loaded",ctNoCookieAttachHiddenFieldsToForms))}},{key:"attachVisibleFieldsToForm",value:function(e,t){var n=document.createElement("input"),t=(n.setAttribute("type","hidden"),n.setAttribute("id","apbct_visible_fields_"+t),n.setAttribute("name","apbct_visible_fields"),{});t[0]=this.collectVisibleFields(e),n.value=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),e.append(n)}},{key:"attachVisibleFieldsDuringSubmit",value:function(e,t){"native"!==ctPublic.data__cookies_type&&void 0!==e.target.ctFormIndex&&this.setVisibleFieldsCookie(this.collectVisibleFields(t),e.target.ctFormIndex)}},{key:"constructNoCookieHiddenField",value:function(e){var t="hidden",e=("submit"===e&&(t="submit"),""),n=getCleanTalkStorageDataArray(),n=JSON.stringify(n);return n="_ct_no_cookie_data_"+btoa(unescape(encodeURIComponent(n))),(e=document.createElement("input")).setAttribute("name","ct_no_cookie_hidden_field"),e.setAttribute("value",n),e.setAttribute("type",t),e.classList.add("apbct_special_field"),e.classList.add("ct_no_cookie_hidden_field"),e}},{key:"attachNoCookieDuringSubmit",value:function(e){"none"===ctPublic.data__cookies_type&&e.target&&e.target.action&&-1!==e.target.action.toString().indexOf("mailpoet_subscription_form")&&(window.XMLHttpRequest.prototype.send=function(e){var t,n;+ctPublic.bot_detector_enabled?(t=(new ApbctHandler).toolGetEventToken())&&(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+("data%5Bct_bot_detector_event_token%5D="+t+"&")+e)):(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+e)),setTimeout(function(){window.XMLHttpRequest.prototype.send=defaultSend},0)})}},{key:"setVisibleFieldsCookie",value:function(e,t){var n="object"===_typeof(e)&&null!==e?e:{};if("native"===ctPublic.data__cookies_type)for(var o in n){if(10{function p(){_classCallCheck(this,p)}return _createClass(p,[{key:"excludeForm",value:function(e){return!!this.checkHiddenFieldsExclusions(e,"visible_fields")||!!(e.querySelector('input[name="wspsc_add_cart_submit"]')||e.querySelector('input[name="option"][value="com_vikrentcar"]')||e.querySelector('input[name="option"][value="com_vikbooking"]'))||void 0!==e.elements.apbct_visible_fields&&0{var n=_asyncToGenerator(_regenerator().m(function e(t,n){var o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(+ctPublic.settings__forms__check_external){e.n=1;break}return e.a(2,!1);case 1:o=_createForOfIteratorHelper(c),e.p=2,o.s();case 3:if((a=o.n()).done)e.n=6;else{if((a=a.value).matches(t,n))return a=a.getForm(),e.n=4,i(a);e.n=5}break;case 4:if(e.v)return e.a(2,!0);e.n=5;break;case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,a=e.v,o.e(a);case 8:return e.p=8,o.f(),e.f(8);case 9:return e.a(2,!1)}},e,null,[[2,7,8,9]])}));return function(e,t){return n.apply(this,arguments)}})(),c=[{name:"bitrix24",matches:function(e,t){return document.querySelector(".b24-form")&&e.includes("bitrix/services/main/ajax.php?action=crm.site.form.fill")&&t[1].body instanceof FormData},getForm:function(){return document.querySelector(".b24-form form")}},{name:"sender",matches:function(e,t){return e.includes("stats.sender.net/forms")&&"string"==typeof t[1].body},getForm:function(){for(var e=document.querySelectorAll("iframe"),t=0;t{var t=_asyncToGenerator(_regenerator().m(function e(t){var n,o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}return e.a(2,!1);case 1:return n=r(t),b=!0,e.p=2,e.n=3,new Promise(function(e,t){apbct_public_sendAJAX(n,{async:!0,callback:e,onErrorCallback:t})});case 3:return o=e.v,(a=void 0!==o.apbct&&+o.apbct.blocked||void 0!==o.data&&void 0!==o.data.message)&&(new ApbctShowForbidden).parseBlockMessage(o),e.a(2,a);case 4:return e.p=4,e.a(2,!1);case 5:return e.p=5,b=!1,e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(e){return t.apply(this,arguments)}})(),r=function(e){var t,n={action:"cleantalk_force_ajax_check"},o=_createForOfIteratorHelper(e.elements);try{for(o.s();!(t=o.n()).done;){var a=t.value;a.name&&(n[a.name]=a.value)}}catch(e){o.e(e)}finally{o.f()}return+ctPublic.bot_detector_enabled?n.ct_bot_detector_event_token=apbctLocalStorage.get("bot_detector_event_token"):n.ct_no_cookie_hidden_field=getNoCookieData(),n};window.fetch=_asyncToGenerator(_regenerator().m(function e(){var t,n,o,a,c,i,r,l,s,u,d,p=arguments;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:for(t=p.length,n=new Array(t),o=0;o!(!t||"string"!=typeof t)&&["google.com/recaptcha","gstatic.com/recaptcha","recaptcha.google.com","recaptcha.net","www.google.com/recaptcha","apis.google.com","paypal.com","api.paypal.com","www.paypal.com","js.stripe.com","api.stripe.com","checkout.stripe.com","api.doboard.com"].some(function(e){return t.includes(e)}))(a="string"==typeof n[0]?n[0]:(null==(a=n[0])?void 0:a.url)||""))return e.a(2,y.apply(this,n));e.n=2;break;case 2:if(n&&n[0]&&n[1]&&n[1].body){e.n=3;break}return e.a(2,y.apply(this,n));case 3:return e.n=4,m.processFetch(n);case 4:if(!0===e.v)return e.a(2,Promise.reject(new Error("Forbidden")));e.n=5;break;case 5:if(0{try{return n[0].includes(new URL(ctPublicFunctions._rest_url).pathname+"metform/")}catch(e){}})()))try{n[1].body=f(n[1].body,_(+ctPublic.bot_detector_enabled))}catch(e){}if(0{var t=e.value;"undefined"!=typeof ctPublic&&1==+ctPublic.settings__forms__search_test&&null!==t.getAttribute("apbct-form-sign")&&"native_search"===t.getAttribute("apbct-form-sign")&&(t.apbctSearchPrevOnsubmit=t.onsubmit,t.onsubmit=function(e){return n.searchFormHandler(e,t)})})()}catch(e){t.e(e)}finally{t.f()}}},{key:"searchFormHandler",value:function(e,t){try{var n,o,a,c=t.querySelector('[name*="apbct__email_id__"]'),i=null,r=(null!==c&&null!==c.value&&(i=c.value),getCleanTalkStorageDataArray()),l=apbctLocalStorage.get("bot_detector_event_token");null===r&&null===c&&null===l||(e.preventDefault(),n=function(){null!==c&&c.parentNode.removeChild(c),"function"==typeof t.apbctSearchPrevOnsubmit?t.apbctSearchPrevOnsubmit():HTMLFormElement.prototype.submit.call(t)},o=r,null!==i&&(o.apbct_search_form__honeypot_value=i),o.ct_bot_detector_event_token=l,"string"==typeof o.apbct_pixel_url&&-1!==o.apbct_pixel_url.indexOf("%3A")&&(o.apbct_pixel_url=decodeURIComponent(o.apbct_pixel_url)),void 0!==(a=JSON.stringify(o))&&0!==a.length?ctSetAlternativeCookie(a,{callback:n,onErrorCallback:n,forceAltCookies:!0}):n())}catch(e){console.warn("APBCT search form onsubmit handler error. "+e)}}},{key:"toolForAntiCrawlerCheckDuringBotDetector",value:function(){var e=setInterval(function(){localStorage.bot_detector_event_token&&(ctSetCookie("apbct_bot_detector_exist","1","3600"),clearInterval(e))},500)}},{key:"toolGetEventToken",value:function(){var t=localStorage.getItem("bot_detector_event_token");try{t=JSON.parse(t)}catch(e){t=!1}return!(null===t||!1===t||!t.hasOwnProperty("value")||""===t.value)&&t.value}}])})(),ApbctShowForbidden=(()=>_createClass(function e(){_classCallCheck(this,e)},[{key:"prepareBlockForAjaxForms",value:function(){var o=function(e){if(e.responseText&&-1!==e.responseText.indexOf('"apbct')&&-1===e.responseText.indexOf("DOCTYPE"))try{this.parseBlockMessage(JSON.parse(e.responseText))}catch(e){console.log(e.toString())}}.bind(this);"undefined"!=typeof jQuery?"function"!=typeof jQuery(document).ajaxComplete()?jQuery(document).on("ajaxComplete",function(e,t,n){o(t)}):jQuery(document).ajaxComplete(function(e,t,n){o(t)}):"undefined"!=typeof XMLHttpRequest&&document.addEventListener("readystatechange",function(e){4===e.target.readyState&&o(e.target)})}},{key:"parseBlockMessage",value:function(e){var t,n="";if((void 0!==e.apbct&&(e=e.apbct).blocked&&(n=e.comment),n=void 0!==e.data&&void 0!==(e=e.data).message?e.message:n)&&(document.dispatchEvent(new CustomEvent("apbctAjaxBockAlert",{bubbles:!0,detail:{message:n}})),cleantalkModal.loaded=n,cleantalkModal.open(),1==+e.stop_script&&(window.stop(),e.integration&&"NEXForms"===e.integration&&((t=document.querySelector("form.submit-nex-form button.nex-submit"))&&(t.disabled=!0,t.style.opacity="0.5",t.style.cursor="not-allowed",t.style.pointerEvents="none",t.style.backgroundColor="#ccc",t.style.color="#fff"),t=document.querySelector("div.nex_success_message"))&&(t.style.display="none"),e.integration)&&"ElfsightForm"===e.integration)){var o=[document];try{document.querySelectorAll("iframe").forEach(function(e){try{e.contentDocument&&o.push(e.contentDocument)}catch(e){}})}catch(e){}for(var a=0,c=o;a_createClass(function e(){_classCallCheck(this,e)},[{key:"extract",value:function(e){if(e&&"string"==typeof e){try{e=decodeURIComponent(e)}catch(e){return!1}var t=document.querySelectorAll("form"),n=this.getIdFromAjax(e);if(n){var o,a=_createForOfIteratorHelper(t);try{for(a.s();!(o=a.n()).done;){var c=o.value,i=this.findParentContainer(c);if(i){var r=this.getIdFromHTML(i);if(r===n){var l=i.querySelector("input[id^=apbct_visible_fields_]");if(null!=l&&l.value)return l.value}}}}catch(e){a.e(e)}finally{a.f()}}}return!1}},{key:"getIdFromAjax",value:function(e){return console.warn("getIdFromAjax must be implemented by child class"),null}},{key:"findParentContainer",value:function(e){return console.warn("findParentContainer must be implemented by child class"),null}},{key:"getIdFromHTML",value:function(e){return console.warn("getIdFromHTML must be implemented by child class"),null}}],[{key:"createExtractor",value:function(e){switch(e){case"action=nf_ajax_submit":return new ApbctNinjaFormsVisibleFields;case"action=mailpoet":return new ApbctMailpoetVisibleFields;default:return null}}}]))(),ApbctNinjaFormsVisibleFields=(()=>{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/"id"\s*:\s*"?(\d+)"/,/form_id\s*[:\s]*"?(\d+)"/,/nf-form-(\d+)/,/"id":(\d+)/];t{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/form_id\s*[:\s]*"?(\d+)"/,/data\[form_id\]=(\d+)/,/form_id=(\d+)/];t_createClass(function e(){_classCallCheck(this,e)},[{key:"setSessionId",value:function(){var e;apbctSessionStorage.isSet("apbct_session_id")?apbctLocalStorage.set("apbct_page_hits",Number(apbctLocalStorage.get("apbct_page_hits"))+1):(e=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(2,10),apbctSessionStorage.set("apbct_session_id",e,!1),apbctLocalStorage.set("apbct_page_hits",1),document.referrer&&new URL(document.referrer).host!==location.host&&apbctSessionStorage.set("apbct_site_referer",document.referrer,!1))}},{key:"writeReferrersToSessionStorage",value:function(){var e=apbctSessionStorage.get("apbct_session_current_page");!1!==e&&document.location.href!==e&&apbctSessionStorage.set("apbct_prev_referer",e,!1),apbctSessionStorage.set("apbct_session_current_page",document.location.href,!1)}},{key:"setCookiesType",value:function(){var e=apbctLocalStorage.get("ct_cookies_type");e&&e===ctPublic.data__cookies_type||(apbctLocalStorage.set("ct_cookies_type",ctPublic.data__cookies_type),apbctLocalStorage.delete("ct_mouse_moved"),apbctLocalStorage.delete("ct_has_scrolled"))}},{key:"startFieldsListening",value:function(){if(!apbctLocalStorage.isSet("ct_has_key_up")&&!apbctLocalStorage.get("ct_has_key_up")||!apbctLocalStorage.isSet("ct_has_input_focused")&&!apbctLocalStorage.get("ct_has_input_focused")||"native"!==ctPublic.data__cookies_type||void 0===ctGetCookie("ct_has_input_focused")||void 0===ctGetCookie("ct_has_key_up")){var e=document.forms;if(ctPublic.handled_fields=[],e&&0_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"elementBody",document.querySelector("body")),_defineProperty(this,"collectionForms",document.forms),this.setListeners()},[{key:"setListeners",value:function(){var t=this;this.elementBody.addEventListener("click",function(e){t.checkElementInForms(e,"addClicks")}),this.elementBody.addEventListener("mouseup",function(e){"Range"==document.getSelection().type.toString()&&t.addSelected()}),this.elementBody.addEventListener("mousemove",function(e){t.checkElementInForms(e,"trackMouseMovement")})}},{key:"checkElementInForms",value:function(e,t){for(var n,o=0;o_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"fieldData",{isAutoFill:!1,isUseBuffer:!1,speedDelta:0,firstKeyTimestamp:0,lastKeyTimestamp:0,lastDelta:0,countOfKey:0}),_defineProperty(this,"fields",document.querySelectorAll("textarea[name=comment]")),_defineProperty(this,"data",[])},[{key:"gatheringFields",value:function(){var n=this;Array.prototype.slice.call(this.fields).forEach(function(e,t){n.data.push(Object.assign({},n.fieldData))})}},{key:"setListeners",value:function(){var o=this;this.fields.forEach(function(e,t){e.addEventListener("paste",function(){o.data[t].isUseBuffer=!0})}),this.fields.forEach(function(e,t){e.addEventListener("onautocomplete",function(){o.data[t].isAutoFill=!0})}),this.fields.forEach(function(e,n){e.addEventListener("input",function(){o.data[n].countOfKey++;var e,t=+new Date;1===o.data[n].countOfKey?(o.data[n].lastKeyTimestamp=t,o.data[n].firstKeyTimestamp=t):(e=t-o.data[n].lastKeyTimestamp,2===o.data[n].countOfKey?(o.data[n].lastKeyTimestamp=t,o.data[n].lastDelta=e):2{function o(){_classCallCheck(this,o)}return _createClass(o,null,[{key:"getFrontendDataLog",value:function(){var e=("undefined"!=typeof ctPublicFunctions&&ctPublicFunctions.cookiePrefix?ctPublicFunctions.cookiePrefix:"")+o.LOG_KEY,t=o.LOG_KEY;if("undefined"!=typeof apbctLocalStorage&&apbctLocalStorage.get){var n=apbctLocalStorage.get(e)||apbctLocalStorage.get(t)||null;if(n&&"string"==typeof n)try{return JSON.parse(n)}catch(e){return""}return n}n=(n=localStorage.getItem(e))||localStorage.getItem(t)||null;try{return"string"==typeof n?JSON.parse(n):n}catch(e){return""}}},{key:"asDTO",value:function(){return{botd_logic_loaded:o.botdLogicLoaded,botd_wrapper_loaded:o.botdWrapperLoaded,frontend_data_log:"",transport_enabled:1}}},{key:"detectScripts",value:function(){if(o.botdWrapperLoaded&&o.botdLogicLoaded)return!0;for(var e=document.getElementsByTagName("script"),t=0;t .comment-body *[class*="comment-author"]',document.querySelector(".apbct-trp .comment-author .comment-author-link")&&(e='.apbct-trp *[class*="comment-author-link"]'),0!==(e=document.querySelectorAll(e+',.apbct-trp > .wp-block-group *[class*="comment-author"],.apbct-trp *[class*="review__author"],.apbct-trp td[class*="column-author"] > strong')).length)&&(e.forEach(function(e,t){var n,o,a,c,i,r,l,s,u;e.className.indexOf("review")<0&&"undefined"==typeof pagenow&&e.parentElement.className.indexOf("group")<0&&"DIV"!=e.tagName||e.querySelector(".comment-metadata")||((n=document.createElement("div")).setAttribute("class","apbct-real-user-badge"),(o=document.createElement("img")).setAttribute("src",d.imgPersonUrl),o.setAttribute("class","apbct-real-user-popup-img"),(a=document.createElement("div")).setAttribute("class","apbct-real-user-popup"),(r=document.createElement("strong")).append(d.phrases.trpHeading),(c=document.createElement("div")).setAttribute("class","apbct-real-user-popup-content_row"),(i=document.createElement("div")).append(" "),i.append(r),i.append(d.phrases.trpContent1),(r=document.createElement("div")).style.display="flex",r.style.gap="5px",(l=document.createElement("div")).append(d.phrases.trpContent2),r.append(l),p&&(l=document.createElement("div"),(s=document.createElement("a")).setAttribute("href",d.trpContentLink),s.setAttribute("target","_blank"),(u=document.createElement("img")).setAttribute("src",ctAdminCommon.new_window_gif),u.setAttribute("alt","New window"),u.setAttribute("style","padding-top:3px"),s.append(u),l.append(s),r.append(l)),c.append(i,r),a.append(c),n.append(o),e.append(n),e.append(a))}),document.querySelectorAll(".apbct-real-user-badge").forEach(function(o){var a=void 0,e=(t.body.addEventListener("click",function(e){-1==e.target.className.indexOf("apbct-real-user")&&-1==e.target.parentElement.className.indexOf("apbct-real-user")&&closeAllPopupTRP()}),o.addEventListener("click",function(){var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.toggle("visible")}),o.addEventListener("mouseenter",function(){closeAllPopupTRP();var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.add("visible")}),o.addEventListener("mouseleave",function(){var t=this;a=setTimeout(function(){var e=t.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.nextElementSibling);e.addEventListener("mouseenter",function(){clearTimeout(a),e.classList.add("visible")}),e.addEventListener("mouseleave",function(){a=setTimeout(function(){e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.addEventListener("touchend",function(){var n=this;a=setTimeout(function(){var e=n.nextElementSibling,t=window.getSelection();e&&t&&e.classList.contains("apbct-real-user-popup")&&0===t.toString().length?e.classList.remove("visible"):(clearTimeout(a),document.addEventListener("selectionchange",function e(){var t=window.getSelection();t&&0===t.toString().length&&(a=setTimeout(function(){var e=o.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},3e3),document.removeEventListener("selectionchange",e))}))},3e3)})})))}); diff --git a/js/apbct-public-bundle_int-protection.min.js b/js/apbct-public-bundle_int-protection.min.js index 4918264fc..3076e3968 100644 --- a/js/apbct-public-bundle_int-protection.min.js +++ b/js/apbct-public-bundle_int-protection.min.js @@ -1 +1 @@ -function ownKeys(t,e){var n,o=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,n)),o}function _objectSpread(t){for(var e=1;et||r=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var n;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n{var n,e;if(r.data.forEach(function(e){e.encoded_email===a[t].dataset.originalString&&(n=e)}),!1===n.is_allowed)return{v:void 0};if(void 0===a[t].href||0!==a[t].href.indexOf("mailto:")&&0!==a[t].href.indexOf("tel:"))a[t].classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a[t])},2e3);else{if(0===a[t].href.indexOf("mailto:"))e="mailto:";else{if(0!==a[t].href.indexOf("tel:"))return 0;e="tel:"}var o=a[t].href.replace(e,"");ctReplaceInTextNodes(a[t],o,ctHtmlToText(n.decoded_email)),a[t].href=e+n.decoded_email,a[t].querySelectorAll("span.apbct-email-encoder").forEach(function(t){var n="";r.data.forEach(function(e){e.encoded_email===t.dataset.originalString&&(n=e.decoded_email)}),t.textContent=ctHtmlToText(n)})}a[t].removeEventListener("click",ctFillDecodedEmailHandler)})(t))&&e)return e.v}else{var n=r.data[0];a.classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a)},2e3),a.removeEventListener("click",ctFillDecodedEmailHandler)}}function ctReplaceInTextNodes(e,t,n){if(t){e.normalize();for(var o,a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);o=a.nextNode();)if(-1!==o.nodeValue.indexOf(t))return void(o.nodeValue=o.nodeValue.replace(t,function(){return n}))}}function ctHtmlToText(e){return e?(new DOMParser).parseFromString(String(e),"text/html").documentElement.textContent:""}function ctProcessDecodedDataResult(e,t){t.setAttribute("title",""),t.removeAttribute("style"),ctFillDecodedEmail(t,e.decoded_email)}function ctFillDecodedEmail(e,t){e.innerHTML=e.innerHTML.replace(/.+?(
)/,t+"$1")}var ctEmailDecoderIsInitialized=!1,cleantalkModal=(document.addEventListener("DOMContentLoaded",function(){if(!ctEmailDecoderIsInitialized){ctEmailDecoderIsInitialized=!0;var e=document.querySelectorAll("[data-original-string]");if("undefined"!=typeof ctPublic&&(ctPublic.encodedEmailNodes=e),e.length)for(var t=0;t$1')):(r.innerHTML="Loading...",t&&this.load(t)),r.setAttribute("id","cleantalk-modal-content"),n.append(r),this.opened=!0},confirm:function(e){var t,n=1_createClass(function e(t){_classCallCheck(this,e),_defineProperty(this,"ajax_parameters",{}),_defineProperty(this,"restParameters",{}),_defineProperty(this,"selector",null),_defineProperty(this,"elements",[]),_defineProperty(this,"eventCallback",void 0),_defineProperty(this,"eventSelector",void 0),_defineProperty(this,"event",void 0),this.select(t)},[{key:"select",value:function(e){return e instanceof HTMLCollection?(this.selector=null,this.elements=[],this.elements=Array.prototype.slice.call(e)):"object"===_typeof(e)?(this.selector=null,this.elements=[],this.elements[0]=e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect(),this}},{key:"addElement",value:function(e){"object"===_typeof(e)?this.elements.push(e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect()}},{key:"push",value:function(e){this.elements.push(e)}},{key:"reduce",value:function(){this.elements=this.elements.slice(0,-1)}},{key:"deselect",value:function(){this.elements=[]}},{key:"css",value:function(e,t){if(t=t||!1,"object"===_typeof(e)){for(var n in e)if(Object.hasOwn(e,n))for(var o=n.replace(/([-_][a-z])/g,function(e){return e.toUpperCase().replace("-","").replace("_","")}),a=0;a(e=document.createElement(e).constructor,!Boolean(~[HTMLElement,HTMLUnknownElement].indexOf(e))))(t)?n||e.tagName.toLowerCase()===t.toLowerCase():t.match(/^[a-z]/)?n||Boolean(e[t]):n||(null!==this.selector?null!==document.querySelector(this.selector+t):this.isWithoutSelector(e,t)):n}},{key:"isWithoutSelector",value:function(e,t){var n,o=!1,a=_createForOfIteratorHelper(document.querySelectorAll(t));try{for(a.s();!(n=a.n()).done;)o=o||e===n.value}catch(e){a.e(e)}finally{a.f()}return o}},{key:"filter",value:function(e){this.selector=null;for(var t=this.elements.length-1;0<=t;t--)this.isElem(this.elements[t],e)||this.elements.splice(Number(t),1);return this}},{key:"parent",value:function(e){return this.select(this.elements[0].parentElement),void 0===e||this.is(e)||this.deselect(),this}},{key:"parents",value:function(e){for(this.select(this.elements[0]);null!==this.elements[this.elements.length-1].parentElement;)this.push(this.elements[this.elements.length-1].parentElement);return this.elements.splice(0,1),void 0!==e&&this.filter(e),this}},{key:"children",value:function(e){return this.select(this.elements[0].children),void 0!==e&&this.filter(e),this}},{key:"siblings",value:function(e){var t=this.elements[0];return this.parent(),this.children(e),this.elements.splice(this.elements.indexOf(t),1),this}},{key:"remove",value:function(){var e,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(e=t.n()).done;)e.value.remove()}catch(e){t.e(e)}finally{t.f()}}},{key:"after",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.after(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"append",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.append(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"fadeIn",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity+(new Date-n)/o,n=+new Date,+t.style.opacity<1&&(window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16))}var t=a.value,n=(t.style.opacity=0,t.style.display="block",+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}},{key:"fadeOut",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity-(new Date-n)/o,n=+new Date,0<+t.style.opacity?window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16):t.style.display="none"}var t=a.value,n=(t.style.opacity=1,+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}}]))());function selectActualNonce(){var e="";return ctPublicFunctions.hasOwnProperty("_fresh_nonce")&&"string"==typeof ctPublicFunctions._fresh_nonce&&0{function o(e){for(var t in _classCallCheck(this,o),_defineProperty(this,"xhr",new XMLHttpRequest),_defineProperty(this,"method","POST"),_defineProperty(this,"url",""),_defineProperty(this,"async",!0),_defineProperty(this,"user",null),_defineProperty(this,"password",null),_defineProperty(this,"data",{}),_defineProperty(this,"button",null),_defineProperty(this,"spinner",null),_defineProperty(this,"progressbar",null),_defineProperty(this,"context",this),_defineProperty(this,"callback",null),_defineProperty(this,"onErrorCallback",null),_defineProperty(this,"responseType","json"),_defineProperty(this,"headers",{}),_defineProperty(this,"timeout",15e3),_defineProperty(this,"methods_to_convert_data_to_URL",["GET","HEAD"]),_defineProperty(this,"body",null),_defineProperty(this,"http_code",0),_defineProperty(this,"status_text",""),e)void 0!==this[t]&&(this[t]=e[t]);if(this.prepare(),Object.keys(this.data).length&&(this.deleteDoubleJSONEncoding(this.data),this.convertData()),!this.url)return console.log("%cXHR%c not URL provided","color: red; font-weight: bold;","color: grey; font-weight: normal;"),!1;this.xhr.open(this.method,this.url,this.async,this.user,this.password),this.setHeaders(),this.xhr.responseType=this.responseType,this.xhr.timeout=this.timeout,this.xhr.onreadystatechange=function(){this.isWpNonceError()?this.getFreshNonceAndRerunXHR(e):this.onReadyStateChange()}.bind(this),this.xhr.onload=function(){this.onLoad()}.bind(this),this.xhr.onprogress=function(e){this.onProgress(e)}.bind(this),this.xhr.onerror=function(){this.onError()}.bind(this),this.xhr.ontimeout=function(){this.onTimeout()}.bind(this),this.xhr.send(this.body)}return _createClass(o,[{key:"prepare",value:function(){this.button&&(this.button.setAttribute("disabled","disabled"),this.button.style.cursor="not-allowed"),this.spinner&&(this.spinner.style.display="inline")}},{key:"complete",value:function(){this.http_code=this.xhr.status,this.status_text=this.xhr.statusText,this.button&&(this.button.removeAttribute("disabled"),this.button.style.cursor="auto"),this.spinner&&(this.spinner.style.display="none"),this.progressbar&&this.progressbar.fadeOut("slow")}},{key:"onReadyStateChange",value:function(){null!==this.on_ready_state_change&&"function"==typeof this.on_ready_state_change&&this.on_ready_state_change()}},{key:"onProgress",value:function(e){null!==this.on_progress&&"function"==typeof this.on_progress&&this.on_progress()}},{key:"onError",value:function(){console.log("error"),this.complete(),this.error(this.http_code,this.status_text),null!==this.onErrorCallback&&"function"==typeof this.onErrorCallback&&this.onErrorCallback(this.status_text)}},{key:"onTimeout",value:function(){this.complete(),this.error(0,"timeout"),null!==this.onErrorCallback&&"function"==typeof this.onErrorCallback&&this.onErrorCallback("Timeout")}},{key:"onLoad",value:function(){if(this.complete(),"json"===this.responseType){if(null===this.xhr.response)return this.error(this.http_code,this.status_text,"No response"),!1;if(void 0!==this.xhr.response.error)return this.error(this.http_code,this.status_text,this.xhr.response.error),!1}null!==this.callback&&"function"==typeof this.callback&&this.callback.call(this.context,this.xhr.response,this.data)}},{key:"isWpNonceError",value:function(){var e=!1,t=!1;return 4==this.xhr.readyState&&(e="object"===_typeof(this.xhr.response)&&null!==this.xhr.response&&this.xhr.response.hasOwnProperty("data")&&this.xhr.response.data.hasOwnProperty("status")&&403===this.xhr.response.data.status,t="-1"===this.xhr.response&&403===this.xhr.status),e||t}},{key:"getFreshNonceAndRerunXHR",value:function(e){var t,n="";e.hasOwnProperty("headers")&&e.headers.hasOwnProperty("X-WP-Nonce")&&(n=e.headers["X-WP-Nonce"]),""!==(n=e.hasOwnProperty("data")&&e.data.hasOwnProperty("_ajax_nonce")?e.data._ajax_nonce:n)&&((t={method:"POST"}).data={spbc_remote_call_action:"get_fresh_wpnonce",plugin_name:"antispam",nonce_prev:n,initial_request_params:e},t.notJson=!0,t.url=ctPublicFunctions._ajax_url,t.callback=function(){for(var e=arguments.length,t=new Array(e),n=0;n{function o(){for(var e=arguments.length,t=new Array(e),n=0;n{function a(){for(var e=arguments.length,t=new Array(e),n=0;n{return _createClass(function e(){_classCallCheck(this,e),this.config=ApbctFetchProxyConfig},[{key:"findMatchingConfig",value:function(e){for(var t="string"==typeof e?e:null!=e&&"string"==typeof e.href?e.href:"",n=0,o=Object.entries(this.config);nMath.floor((new Date).getTime()/1e3)},isSet:function(e){return null!==localStorage.getItem(e)},delete:function(e){localStorage.removeItem(e)},getCleanTalkData:function(){for(var e={},t=0;t_createClass(function e(){_classCallCheck(this,e)},[{key:"attachEventTokenToMultipageGravityForms",value:function(){document.addEventListener("gform_page_loaded",function(){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||"function"!=typeof setEventTokenField||"function"!=typeof botDetectorLocalStorage||setEventTokenField(botDetectorLocalStorage.get("bot_detector_event_token"))})}},{key:"attachEventTokenToWoocommerceGetRequestAddToCart",value:function(){ctPublic.wc_ajax_add_to_cart||document.querySelectorAll("a.add_to_cart_button:not(.product_type_variable):not(.wc-interactive)").forEach(function(o){o.addEventListener("click",function(e){var t=o.getAttribute("href"),n=apbctLocalStorage.get("bot_detector_event_token");n&&(-1===t.indexOf("?")?t+="?":t+="&",o.setAttribute("href",t+="ct_bot_detector_event_token="+n))})})}},{key:"restartBotDetectorEventTokenAttach",value:function(){var e,t=0_createClass(function e(){_classCallCheck(this,e)},[{key:"attachHiddenFieldsToForms",value:function(e){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||+ctPublic.bot_detector_enabled&&!e||(ctNoCookieAttachHiddenFieldsToForms(),document.addEventListener("gform_page_loaded",ctNoCookieAttachHiddenFieldsToForms))}},{key:"attachVisibleFieldsToForm",value:function(e,t){var n=document.createElement("input"),t=(n.setAttribute("type","hidden"),n.setAttribute("id","apbct_visible_fields_"+t),n.setAttribute("name","apbct_visible_fields"),{});t[0]=this.collectVisibleFields(e),n.value=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),e.append(n)}},{key:"attachVisibleFieldsDuringSubmit",value:function(e,t){"native"!==ctPublic.data__cookies_type&&void 0!==e.target.ctFormIndex&&this.setVisibleFieldsCookie(this.collectVisibleFields(t),e.target.ctFormIndex)}},{key:"constructNoCookieHiddenField",value:function(e){var t="hidden",e=("submit"===e&&(t="submit"),""),n=getCleanTalkStorageDataArray(),n=JSON.stringify(n);return n="_ct_no_cookie_data_"+btoa(unescape(encodeURIComponent(n))),(e=document.createElement("input")).setAttribute("name","ct_no_cookie_hidden_field"),e.setAttribute("value",n),e.setAttribute("type",t),e.classList.add("apbct_special_field"),e.classList.add("ct_no_cookie_hidden_field"),e}},{key:"attachNoCookieDuringSubmit",value:function(e){"none"===ctPublic.data__cookies_type&&e.target&&e.target.action&&-1!==e.target.action.toString().indexOf("mailpoet_subscription_form")&&(window.XMLHttpRequest.prototype.send=function(e){var t,n;+ctPublic.bot_detector_enabled?(t=(new ApbctHandler).toolGetEventToken())&&(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+("data%5Bct_bot_detector_event_token%5D="+t+"&")+e)):(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+e)),setTimeout(function(){window.XMLHttpRequest.prototype.send=defaultSend},0)})}},{key:"setVisibleFieldsCookie",value:function(e,t){var n="object"===_typeof(e)&&null!==e?e:{};if("native"===ctPublic.data__cookies_type)for(var o in n){if(10{function p(){_classCallCheck(this,p)}return _createClass(p,[{key:"excludeForm",value:function(e){return!!this.checkHiddenFieldsExclusions(e,"visible_fields")||!!(e.querySelector('input[name="wspsc_add_cart_submit"]')||e.querySelector('input[name="option"][value="com_vikrentcar"]')||e.querySelector('input[name="option"][value="com_vikbooking"]'))||void 0!==e.elements.apbct_visible_fields&&0{var n=_asyncToGenerator(_regenerator().m(function e(t,n){var o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(+ctPublic.settings__forms__check_external){e.n=1;break}return e.a(2,!1);case 1:o=_createForOfIteratorHelper(r),e.p=2,o.s();case 3:if((a=o.n()).done)e.n=6;else{if((a=a.value).matches(t,n))return a=a.getForm(),e.n=4,i(a);e.n=5}break;case 4:if(e.v)return e.a(2,!0);e.n=5;break;case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,a=e.v,o.e(a);case 8:return e.p=8,o.f(),e.f(8);case 9:return e.a(2,!1)}},e,null,[[2,7,8,9]])}));return function(e,t){return n.apply(this,arguments)}})(),r=[{name:"bitrix24",matches:function(e,t){return document.querySelector(".b24-form")&&e.includes("bitrix/services/main/ajax.php?action=crm.site.form.fill")&&t[1].body instanceof FormData},getForm:function(){return document.querySelector(".b24-form form")}},{name:"sender",matches:function(e,t){return e.includes("stats.sender.net/forms")&&"string"==typeof t[1].body},getForm:function(){for(var e=document.querySelectorAll("iframe"),t=0;t{var t=_asyncToGenerator(_regenerator().m(function e(t){var n,o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}return e.a(2,!1);case 1:return n=c(t),b=!0,e.p=2,e.n=3,new Promise(function(e,t){apbct_public_sendAJAX(n,{async:!0,callback:e,onErrorCallback:t})});case 3:return o=e.v,(a=void 0!==o.apbct&&+o.apbct.blocked||void 0!==o.data&&void 0!==o.data.message)&&(new ApbctShowForbidden).parseBlockMessage(o),e.a(2,a);case 4:return e.p=4,e.a(2,!1);case 5:return e.p=5,b=!1,e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(e){return t.apply(this,arguments)}})(),c=function(e){var t,n={action:"cleantalk_force_ajax_check"},o=_createForOfIteratorHelper(e.elements);try{for(o.s();!(t=o.n()).done;){var a=t.value;a.name&&(n[a.name]=a.value)}}catch(e){o.e(e)}finally{o.f()}return+ctPublic.bot_detector_enabled?n.ct_bot_detector_event_token=apbctLocalStorage.get("bot_detector_event_token"):n.ct_no_cookie_hidden_field=getNoCookieData(),n};window.fetch=_asyncToGenerator(_regenerator().m(function e(){var t,n,o,a,r,i,c,l,s,u,d,p=arguments;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:for(t=p.length,n=new Array(t),o=0;o!(!t||"string"!=typeof t)&&["google.com/recaptcha","gstatic.com/recaptcha","recaptcha.google.com","recaptcha.net","www.google.com/recaptcha","apis.google.com","paypal.com","api.paypal.com","www.paypal.com","js.stripe.com","api.stripe.com","checkout.stripe.com","api.doboard.com"].some(function(e){return t.includes(e)}))(a="string"==typeof n[0]?n[0]:(null==(a=n[0])?void 0:a.url)||""))return e.a(2,h.apply(this,n));e.n=2;break;case 2:if(n&&n[0]&&n[1]&&n[1].body){e.n=3;break}return e.a(2,h.apply(this,n));case 3:return e.n=4,m.processFetch(n);case 4:if(!0===e.v)return e.a(2,Promise.reject(new Error("Forbidden")));e.n=5;break;case 5:if(0{try{return n[0].includes(new URL(ctPublicFunctions._rest_url).pathname+"metform/")}catch(e){}})()))try{n[1].body=_(n[1].body,f(+ctPublic.bot_detector_enabled))}catch(e){}if(0{var t=e.value;"undefined"!=typeof ctPublic&&1==+ctPublic.settings__forms__search_test&&null!==t.getAttribute("apbct-form-sign")&&"native_search"===t.getAttribute("apbct-form-sign")&&(t.apbctSearchPrevOnsubmit=t.onsubmit,t.onsubmit=function(e){return n.searchFormHandler(e,t)})})()}catch(e){t.e(e)}finally{t.f()}}},{key:"searchFormHandler",value:function(e,t){try{var n,o,a,r=t.querySelector('[name*="apbct__email_id__"]'),i=null,c=(null!==r&&null!==r.value&&(i=r.value),getCleanTalkStorageDataArray()),l=apbctLocalStorage.get("bot_detector_event_token");null===c&&null===r&&null===l||(e.preventDefault(),n=function(){null!==r&&r.parentNode.removeChild(r),"function"==typeof t.apbctSearchPrevOnsubmit?t.apbctSearchPrevOnsubmit():HTMLFormElement.prototype.submit.call(t)},o=c,null!==i&&(o.apbct_search_form__honeypot_value=i),o.ct_bot_detector_event_token=l,"string"==typeof o.apbct_pixel_url&&-1!==o.apbct_pixel_url.indexOf("%3A")&&(o.apbct_pixel_url=decodeURIComponent(o.apbct_pixel_url)),void 0!==(a=JSON.stringify(o))&&0!==a.length?ctSetAlternativeCookie(a,{callback:n,onErrorCallback:n,forceAltCookies:!0}):n())}catch(e){console.warn("APBCT search form onsubmit handler error. "+e)}}},{key:"toolForAntiCrawlerCheckDuringBotDetector",value:function(){var e=setInterval(function(){localStorage.bot_detector_event_token&&(ctSetCookie("apbct_bot_detector_exist","1","3600"),clearInterval(e))},500)}},{key:"toolGetEventToken",value:function(){var t=localStorage.getItem("bot_detector_event_token");try{t=JSON.parse(t)}catch(e){t=!1}return!(null===t||!1===t||!t.hasOwnProperty("value")||""===t.value)&&t.value}}])})(),ApbctShowForbidden=(()=>_createClass(function e(){_classCallCheck(this,e)},[{key:"prepareBlockForAjaxForms",value:function(){var o=function(e){if(e.responseText&&-1!==e.responseText.indexOf('"apbct')&&-1===e.responseText.indexOf("DOCTYPE"))try{this.parseBlockMessage(JSON.parse(e.responseText))}catch(e){console.log(e.toString())}}.bind(this);"undefined"!=typeof jQuery?"function"!=typeof jQuery(document).ajaxComplete()?jQuery(document).on("ajaxComplete",function(e,t,n){o(t)}):jQuery(document).ajaxComplete(function(e,t,n){o(t)}):"undefined"!=typeof XMLHttpRequest&&document.addEventListener("readystatechange",function(e){4===e.target.readyState&&o(e.target)})}},{key:"parseBlockMessage",value:function(e){var t,n="";if((void 0!==e.apbct&&(e=e.apbct).blocked&&(n=e.comment),n=void 0!==e.data&&void 0!==(e=e.data).message?e.message:n)&&(document.dispatchEvent(new CustomEvent("apbctAjaxBockAlert",{bubbles:!0,detail:{message:n}})),cleantalkModal.loaded=n,cleantalkModal.open(),1==+e.stop_script&&(window.stop(),e.integration&&"NEXForms"===e.integration&&((t=document.querySelector("form.submit-nex-form button.nex-submit"))&&(t.disabled=!0,t.style.opacity="0.5",t.style.cursor="not-allowed",t.style.pointerEvents="none",t.style.backgroundColor="#ccc",t.style.color="#fff"),t=document.querySelector("div.nex_success_message"))&&(t.style.display="none"),e.integration)&&"ElfsightForm"===e.integration)){var o=[document];try{document.querySelectorAll("iframe").forEach(function(e){try{e.contentDocument&&o.push(e.contentDocument)}catch(e){}})}catch(e){}for(var a=0,r=o;a_createClass(function e(){_classCallCheck(this,e)},[{key:"extract",value:function(e){if(e&&"string"==typeof e){try{e=decodeURIComponent(e)}catch(e){return!1}var t=document.querySelectorAll("form"),n=this.getIdFromAjax(e);if(n){var o,a=_createForOfIteratorHelper(t);try{for(a.s();!(o=a.n()).done;){var r=o.value,i=this.findParentContainer(r);if(i){var c=this.getIdFromHTML(i);if(c===n){var l=i.querySelector("input[id^=apbct_visible_fields_]");if(null!=l&&l.value)return l.value}}}}catch(e){a.e(e)}finally{a.f()}}}return!1}},{key:"getIdFromAjax",value:function(e){return console.warn("getIdFromAjax must be implemented by child class"),null}},{key:"findParentContainer",value:function(e){return console.warn("findParentContainer must be implemented by child class"),null}},{key:"getIdFromHTML",value:function(e){return console.warn("getIdFromHTML must be implemented by child class"),null}}],[{key:"createExtractor",value:function(e){switch(e){case"action=nf_ajax_submit":return new ApbctNinjaFormsVisibleFields;case"action=mailpoet":return new ApbctMailpoetVisibleFields;default:return null}}}]))(),ApbctNinjaFormsVisibleFields=(()=>{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/"id"\s*:\s*"?(\d+)"/,/form_id\s*[:\s]*"?(\d+)"/,/nf-form-(\d+)/,/"id":(\d+)/];t{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/form_id\s*[:\s]*"?(\d+)"/,/data\[form_id\]=(\d+)/,/form_id=(\d+)/];t{function o(){_classCallCheck(this,o)}return _createClass(o,null,[{key:"getFrontendDataLog",value:function(){var e=("undefined"!=typeof ctPublicFunctions&&ctPublicFunctions.cookiePrefix?ctPublicFunctions.cookiePrefix:"")+o.LOG_KEY,t=o.LOG_KEY;if(void 0!==apbctLocalStorage&&apbctLocalStorage.get){var n=apbctLocalStorage.get(e)||apbctLocalStorage.get(t)||null;if(n&&"string"==typeof n)try{return JSON.parse(n)}catch(e){return""}return n}n=(n=localStorage.getItem(e))||localStorage.getItem(t)||null;try{return"string"==typeof n?JSON.parse(n):n}catch(e){return""}}},{key:"asDTO",value:function(){return{botd_logic_loaded:o.botdLogicLoaded,botd_wrapper_loaded:o.botdWrapperLoaded,frontend_data_log:"",transport_enabled:1}}},{key:"detectScripts",value:function(){if(o.botdWrapperLoaded&&o.botdLogicLoaded)return!0;for(var e=document.getElementsByTagName("script"),t=0;t .comment-body *[class*="comment-author"]',document.querySelector(".apbct-trp .comment-author .comment-author-link")&&(e='.apbct-trp *[class*="comment-author-link"]'),0!==(e=document.querySelectorAll(e+',.apbct-trp > .wp-block-group *[class*="comment-author"],.apbct-trp *[class*="review__author"],.apbct-trp td[class*="column-author"] > strong')).length)&&(e.forEach(function(e,t){var n,o,a,r,i,c,l,s,u;e.className.indexOf("review")<0&&"undefined"==typeof pagenow&&e.parentElement.className.indexOf("group")<0&&"DIV"!=e.tagName||e.querySelector(".comment-metadata")||((n=document.createElement("div")).setAttribute("class","apbct-real-user-badge"),(o=document.createElement("img")).setAttribute("src",d.imgPersonUrl),o.setAttribute("class","apbct-real-user-popup-img"),(a=document.createElement("div")).setAttribute("class","apbct-real-user-popup"),(c=document.createElement("strong")).append(d.phrases.trpHeading),(r=document.createElement("div")).setAttribute("class","apbct-real-user-popup-content_row"),(i=document.createElement("div")).append(" "),i.append(c),i.append(d.phrases.trpContent1),(c=document.createElement("div")).style.display="flex",c.style.gap="5px",(l=document.createElement("div")).append(d.phrases.trpContent2),c.append(l),p&&(l=document.createElement("div"),(s=document.createElement("a")).setAttribute("href",d.trpContentLink),s.setAttribute("target","_blank"),(u=document.createElement("img")).setAttribute("src",ctAdminCommon.new_window_gif),u.setAttribute("alt","New window"),u.setAttribute("style","padding-top:3px"),s.append(u),l.append(s),c.append(l)),r.append(i,c),a.append(r),n.append(o),e.append(n),e.append(a))}),document.querySelectorAll(".apbct-real-user-badge").forEach(function(o){var a=void 0,e=(t.body.addEventListener("click",function(e){-1==e.target.className.indexOf("apbct-real-user")&&-1==e.target.parentElement.className.indexOf("apbct-real-user")&&closeAllPopupTRP()}),o.addEventListener("click",function(){var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.toggle("visible")}),o.addEventListener("mouseenter",function(){closeAllPopupTRP();var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.add("visible")}),o.addEventListener("mouseleave",function(){var t=this;a=setTimeout(function(){var e=t.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.nextElementSibling);e.addEventListener("mouseenter",function(){clearTimeout(a),e.classList.add("visible")}),e.addEventListener("mouseleave",function(){a=setTimeout(function(){e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.addEventListener("touchend",function(){var n=this;a=setTimeout(function(){var e=n.nextElementSibling,t=window.getSelection();e&&t&&e.classList.contains("apbct-real-user-popup")&&0===t.toString().length?e.classList.remove("visible"):(clearTimeout(a),document.addEventListener("selectionchange",function e(){var t=window.getSelection();t&&0===t.toString().length&&(a=setTimeout(function(){var e=o.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},3e3),document.removeEventListener("selectionchange",e))}))},3e3)})})))}); \ No newline at end of file +function _callSuper(e,t,n){return t=_getPrototypeOf(t),_possibleConstructorReturn(e,_isNativeReflectConstruct()?Reflect.construct(t,n||[],_getPrototypeOf(e).constructor):t.apply(e,n))}function _possibleConstructorReturn(e,t){if(t&&("object"==_typeof(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_isNativeReflectConstruct=function(){return!!e})()}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function ownKeys(t,e){var n,o=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,n)),o}function _objectSpread(t){for(var e=1;et||r=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var n;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n{var n,e;if(r.data.forEach(function(e){e.encoded_email===a[t].dataset.originalString&&(n=e)}),!1===n.is_allowed)return{v:void 0};if(void 0===a[t].href||0!==a[t].href.indexOf("mailto:")&&0!==a[t].href.indexOf("tel:"))a[t].classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a[t])},2e3);else{if(0===a[t].href.indexOf("mailto:"))e="mailto:";else{if(0!==a[t].href.indexOf("tel:"))return 0;e="tel:"}var o=a[t].href.replace(e,"");ctReplaceInTextNodes(a[t],o,ctHtmlToText(n.decoded_email)),a[t].href=e+n.decoded_email,a[t].querySelectorAll("span.apbct-email-encoder").forEach(function(t){var n="";r.data.forEach(function(e){e.encoded_email===t.dataset.originalString&&(n=e.decoded_email)}),t.textContent=ctHtmlToText(n)})}a[t].removeEventListener("click",ctFillDecodedEmailHandler)})(t))&&e)return e.v}else{var n=r.data[0];a.classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a)},2e3),a.removeEventListener("click",ctFillDecodedEmailHandler)}}function ctReplaceInTextNodes(e,t,n){if(t){e.normalize();for(var o,a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);o=a.nextNode();)if(-1!==o.nodeValue.indexOf(t))return void(o.nodeValue=o.nodeValue.replace(t,function(){return n}))}}function ctHtmlToText(e){return e?(new DOMParser).parseFromString(String(e),"text/html").documentElement.textContent:""}function ctProcessDecodedDataResult(e,t){t.setAttribute("title",""),t.removeAttribute("style"),ctFillDecodedEmail(t,e.decoded_email)}function ctFillDecodedEmail(e,t){e.innerHTML=e.innerHTML.replace(/.+?(
)/,t+"$1")}var ctEmailDecoderIsInitialized=!1,cleantalkModal=(document.addEventListener("DOMContentLoaded",function(){if(!ctEmailDecoderIsInitialized){ctEmailDecoderIsInitialized=!0;var e=document.querySelectorAll("[data-original-string]");if("undefined"!=typeof ctPublic&&(ctPublic.encodedEmailNodes=e),e.length)for(var t=0;t$1')):(r.innerHTML="Loading...",t&&this.load(t)),r.setAttribute("id","cleantalk-modal-content"),n.append(r),this.opened=!0},confirm:function(e){var t,n=1_createClass(function e(t){_classCallCheck(this,e),_defineProperty(this,"ajax_parameters",{}),_defineProperty(this,"restParameters",{}),_defineProperty(this,"selector",null),_defineProperty(this,"elements",[]),_defineProperty(this,"eventCallback",void 0),_defineProperty(this,"eventSelector",void 0),_defineProperty(this,"event",void 0),this.select(t)},[{key:"select",value:function(e){return e instanceof HTMLCollection?(this.selector=null,this.elements=[],this.elements=Array.prototype.slice.call(e)):"object"===_typeof(e)?(this.selector=null,this.elements=[],this.elements[0]=e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect(),this}},{key:"addElement",value:function(e){"object"===_typeof(e)?this.elements.push(e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect()}},{key:"push",value:function(e){this.elements.push(e)}},{key:"reduce",value:function(){this.elements=this.elements.slice(0,-1)}},{key:"deselect",value:function(){this.elements=[]}},{key:"css",value:function(e,t){if(t=t||!1,"object"===_typeof(e)){for(var n in e)if(Object.hasOwn(e,n))for(var o=n.replace(/([-_][a-z])/g,function(e){return e.toUpperCase().replace("-","").replace("_","")}),a=0;a(e=document.createElement(e).constructor,!Boolean(~[HTMLElement,HTMLUnknownElement].indexOf(e))))(t)?n||e.tagName.toLowerCase()===t.toLowerCase():t.match(/^[a-z]/)?n||Boolean(e[t]):n||(null!==this.selector?null!==document.querySelector(this.selector+t):this.isWithoutSelector(e,t)):n}},{key:"isWithoutSelector",value:function(e,t){var n,o=!1,a=_createForOfIteratorHelper(document.querySelectorAll(t));try{for(a.s();!(n=a.n()).done;)o=o||e===n.value}catch(e){a.e(e)}finally{a.f()}return o}},{key:"filter",value:function(e){this.selector=null;for(var t=this.elements.length-1;0<=t;t--)this.isElem(this.elements[t],e)||this.elements.splice(Number(t),1);return this}},{key:"parent",value:function(e){return this.select(this.elements[0].parentElement),void 0===e||this.is(e)||this.deselect(),this}},{key:"parents",value:function(e){for(this.select(this.elements[0]);null!==this.elements[this.elements.length-1].parentElement;)this.push(this.elements[this.elements.length-1].parentElement);return this.elements.splice(0,1),void 0!==e&&this.filter(e),this}},{key:"children",value:function(e){return this.select(this.elements[0].children),void 0!==e&&this.filter(e),this}},{key:"siblings",value:function(e){var t=this.elements[0];return this.parent(),this.children(e),this.elements.splice(this.elements.indexOf(t),1),this}},{key:"remove",value:function(){var e,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(e=t.n()).done;)e.value.remove()}catch(e){t.e(e)}finally{t.f()}}},{key:"after",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.after(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"append",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.append(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"fadeIn",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity+(new Date-n)/o,n=+new Date,+t.style.opacity<1&&(window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16))}var t=a.value,n=(t.style.opacity=0,t.style.display="block",+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}},{key:"fadeOut",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity-(new Date-n)/o,n=+new Date,0<+t.style.opacity?window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16):t.style.display="none"}var t=a.value,n=(t.style.opacity=1,+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}}]))());function apbct(e){return(new ApbctCore).select(e)}Object.prototype.hasOwn||Object.defineProperty(Object.prototype,"hasOwn",{value:function(e){return Object.prototype.hasOwnProperty.call(this,e)},enumerable:!1,configurable:!0,writable:!0});var ApbctFetchProxyCallbacks={mailchimpBlock:function(e){try{for(var t=localStorage.length-1;0<=t;t--){var n=localStorage.key(t);n&&-1!==n.indexOf("mcforms")&&localStorage.removeItem(n)}}catch(e){console.warn("Error clearing localStorage by mcforms mask:",e)}}},ApbctFetchProxyConfig={mailchimp:{selector:".mcforms-wrapper",urlPattern:"mcf-integrations-mcmktg.mlchmpcompprduse2.iks2.a.intuit.com/gateway/receive",externalForm:!0,action:"cleantalk_force_mailchimp_shadowroot_check",callbackAllow:!1,callbackBlock:ApbctFetchProxyCallbacks.mailchimpBlock},otterform:{selector:".otter-form__container",urlPattern:"otter/v1/form/frontend",externalForm:!1,action:"cleantalk_force_otterform_check",callbackAllow:!1,callbackBlock:!1},elfsight:{selector:'[class*="elfsight-app"]',urlPattern:"data.elfsight.com/public/resources/form-submissions",externalForm:!0,action:"cleantalk_force_elfsight_check",payloadKey:"elfsight_payload",callbackAllow:!1,callbackBlock:!1}},ApbctFetchProxyProtection=(()=>{return _createClass(function e(){_classCallCheck(this,e),this.config=ApbctFetchProxyConfig},[{key:"findMatchingConfig",value:function(e){for(var t="string"==typeof e?e:null!=e&&"string"==typeof e.href?e.href:"",n=0,o=Object.entries(this.config);n_createClass(function e(){_classCallCheck(this,e)},[{key:"attachEventTokenToMultipageGravityForms",value:function(){document.addEventListener("gform_page_loaded",function(){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||"function"!=typeof setEventTokenField||"function"!=typeof botDetectorLocalStorage||setEventTokenField(botDetectorLocalStorage.get("bot_detector_event_token"))})}},{key:"attachEventTokenToWoocommerceGetRequestAddToCart",value:function(){ctPublic.wc_ajax_add_to_cart||document.querySelectorAll("a.add_to_cart_button:not(.product_type_variable):not(.wc-interactive)").forEach(function(o){o.addEventListener("click",function(e){var t=o.getAttribute("href"),n=apbctLocalStorage.get("bot_detector_event_token");n&&(-1===t.indexOf("?")?t+="?":t+="&",o.setAttribute("href",t+="ct_bot_detector_event_token="+n))})})}},{key:"restartBotDetectorEventTokenAttach",value:function(){var e,t=0_createClass(function e(){_classCallCheck(this,e)},[{key:"attachHiddenFieldsToForms",value:function(e){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||+ctPublic.bot_detector_enabled&&!e||(ctNoCookieAttachHiddenFieldsToForms(),document.addEventListener("gform_page_loaded",ctNoCookieAttachHiddenFieldsToForms))}},{key:"attachVisibleFieldsToForm",value:function(e,t){var n=document.createElement("input"),t=(n.setAttribute("type","hidden"),n.setAttribute("id","apbct_visible_fields_"+t),n.setAttribute("name","apbct_visible_fields"),{});t[0]=this.collectVisibleFields(e),n.value=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),e.append(n)}},{key:"attachVisibleFieldsDuringSubmit",value:function(e,t){"native"!==ctPublic.data__cookies_type&&void 0!==e.target.ctFormIndex&&this.setVisibleFieldsCookie(this.collectVisibleFields(t),e.target.ctFormIndex)}},{key:"constructNoCookieHiddenField",value:function(e){var t="hidden",e=("submit"===e&&(t="submit"),""),n=getCleanTalkStorageDataArray(),n=JSON.stringify(n);return n="_ct_no_cookie_data_"+btoa(unescape(encodeURIComponent(n))),(e=document.createElement("input")).setAttribute("name","ct_no_cookie_hidden_field"),e.setAttribute("value",n),e.setAttribute("type",t),e.classList.add("apbct_special_field"),e.classList.add("ct_no_cookie_hidden_field"),e}},{key:"attachNoCookieDuringSubmit",value:function(e){"none"===ctPublic.data__cookies_type&&e.target&&e.target.action&&-1!==e.target.action.toString().indexOf("mailpoet_subscription_form")&&(window.XMLHttpRequest.prototype.send=function(e){var t,n;+ctPublic.bot_detector_enabled?(t=(new ApbctHandler).toolGetEventToken())&&(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+("data%5Bct_bot_detector_event_token%5D="+t+"&")+e)):(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+e)),setTimeout(function(){window.XMLHttpRequest.prototype.send=defaultSend},0)})}},{key:"setVisibleFieldsCookie",value:function(e,t){var n="object"===_typeof(e)&&null!==e?e:{};if("native"===ctPublic.data__cookies_type)for(var o in n){if(10{function p(){_classCallCheck(this,p)}return _createClass(p,[{key:"excludeForm",value:function(e){return!!this.checkHiddenFieldsExclusions(e,"visible_fields")||!!(e.querySelector('input[name="wspsc_add_cart_submit"]')||e.querySelector('input[name="option"][value="com_vikrentcar"]')||e.querySelector('input[name="option"][value="com_vikbooking"]'))||void 0!==e.elements.apbct_visible_fields&&0{var n=_asyncToGenerator(_regenerator().m(function e(t,n){var o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(+ctPublic.settings__forms__check_external){e.n=1;break}return e.a(2,!1);case 1:o=_createForOfIteratorHelper(r),e.p=2,o.s();case 3:if((a=o.n()).done)e.n=6;else{if((a=a.value).matches(t,n))return a=a.getForm(),e.n=4,i(a);e.n=5}break;case 4:if(e.v)return e.a(2,!0);e.n=5;break;case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,a=e.v,o.e(a);case 8:return e.p=8,o.f(),e.f(8);case 9:return e.a(2,!1)}},e,null,[[2,7,8,9]])}));return function(e,t){return n.apply(this,arguments)}})(),r=[{name:"bitrix24",matches:function(e,t){return document.querySelector(".b24-form")&&e.includes("bitrix/services/main/ajax.php?action=crm.site.form.fill")&&t[1].body instanceof FormData},getForm:function(){return document.querySelector(".b24-form form")}},{name:"sender",matches:function(e,t){return e.includes("stats.sender.net/forms")&&"string"==typeof t[1].body},getForm:function(){for(var e=document.querySelectorAll("iframe"),t=0;t{var t=_asyncToGenerator(_regenerator().m(function e(t){var n,o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}return e.a(2,!1);case 1:return n=c(t),b=!0,e.p=2,e.n=3,new Promise(function(e,t){apbct_public_sendAJAX(n,{async:!0,callback:e,onErrorCallback:t})});case 3:return o=e.v,(a=void 0!==o.apbct&&+o.apbct.blocked||void 0!==o.data&&void 0!==o.data.message)&&(new ApbctShowForbidden).parseBlockMessage(o),e.a(2,a);case 4:return e.p=4,e.a(2,!1);case 5:return e.p=5,b=!1,e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(e){return t.apply(this,arguments)}})(),c=function(e){var t,n={action:"cleantalk_force_ajax_check"},o=_createForOfIteratorHelper(e.elements);try{for(o.s();!(t=o.n()).done;){var a=t.value;a.name&&(n[a.name]=a.value)}}catch(e){o.e(e)}finally{o.f()}return+ctPublic.bot_detector_enabled?n.ct_bot_detector_event_token=apbctLocalStorage.get("bot_detector_event_token"):n.ct_no_cookie_hidden_field=getNoCookieData(),n};window.fetch=_asyncToGenerator(_regenerator().m(function e(){var t,n,o,a,r,i,c,l,s,u,d,p=arguments;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:for(t=p.length,n=new Array(t),o=0;o!(!t||"string"!=typeof t)&&["google.com/recaptcha","gstatic.com/recaptcha","recaptcha.google.com","recaptcha.net","www.google.com/recaptcha","apis.google.com","paypal.com","api.paypal.com","www.paypal.com","js.stripe.com","api.stripe.com","checkout.stripe.com","api.doboard.com"].some(function(e){return t.includes(e)}))(a="string"==typeof n[0]?n[0]:(null==(a=n[0])?void 0:a.url)||""))return e.a(2,y.apply(this,n));e.n=2;break;case 2:if(n&&n[0]&&n[1]&&n[1].body){e.n=3;break}return e.a(2,y.apply(this,n));case 3:return e.n=4,m.processFetch(n);case 4:if(!0===e.v)return e.a(2,Promise.reject(new Error("Forbidden")));e.n=5;break;case 5:if(0{try{return n[0].includes(new URL(ctPublicFunctions._rest_url).pathname+"metform/")}catch(e){}})()))try{n[1].body=_(n[1].body,f(+ctPublic.bot_detector_enabled))}catch(e){}if(0{var t=e.value;"undefined"!=typeof ctPublic&&1==+ctPublic.settings__forms__search_test&&null!==t.getAttribute("apbct-form-sign")&&"native_search"===t.getAttribute("apbct-form-sign")&&(t.apbctSearchPrevOnsubmit=t.onsubmit,t.onsubmit=function(e){return n.searchFormHandler(e,t)})})()}catch(e){t.e(e)}finally{t.f()}}},{key:"searchFormHandler",value:function(e,t){try{var n,o,a,r=t.querySelector('[name*="apbct__email_id__"]'),i=null,c=(null!==r&&null!==r.value&&(i=r.value),getCleanTalkStorageDataArray()),l=apbctLocalStorage.get("bot_detector_event_token");null===c&&null===r&&null===l||(e.preventDefault(),n=function(){null!==r&&r.parentNode.removeChild(r),"function"==typeof t.apbctSearchPrevOnsubmit?t.apbctSearchPrevOnsubmit():HTMLFormElement.prototype.submit.call(t)},o=c,null!==i&&(o.apbct_search_form__honeypot_value=i),o.ct_bot_detector_event_token=l,"string"==typeof o.apbct_pixel_url&&-1!==o.apbct_pixel_url.indexOf("%3A")&&(o.apbct_pixel_url=decodeURIComponent(o.apbct_pixel_url)),void 0!==(a=JSON.stringify(o))&&0!==a.length?ctSetAlternativeCookie(a,{callback:n,onErrorCallback:n,forceAltCookies:!0}):n())}catch(e){console.warn("APBCT search form onsubmit handler error. "+e)}}},{key:"toolForAntiCrawlerCheckDuringBotDetector",value:function(){var e=setInterval(function(){localStorage.bot_detector_event_token&&(ctSetCookie("apbct_bot_detector_exist","1","3600"),clearInterval(e))},500)}},{key:"toolGetEventToken",value:function(){var t=localStorage.getItem("bot_detector_event_token");try{t=JSON.parse(t)}catch(e){t=!1}return!(null===t||!1===t||!t.hasOwnProperty("value")||""===t.value)&&t.value}}])})(),ApbctShowForbidden=(()=>_createClass(function e(){_classCallCheck(this,e)},[{key:"prepareBlockForAjaxForms",value:function(){var o=function(e){if(e.responseText&&-1!==e.responseText.indexOf('"apbct')&&-1===e.responseText.indexOf("DOCTYPE"))try{this.parseBlockMessage(JSON.parse(e.responseText))}catch(e){console.log(e.toString())}}.bind(this);"undefined"!=typeof jQuery?"function"!=typeof jQuery(document).ajaxComplete()?jQuery(document).on("ajaxComplete",function(e,t,n){o(t)}):jQuery(document).ajaxComplete(function(e,t,n){o(t)}):"undefined"!=typeof XMLHttpRequest&&document.addEventListener("readystatechange",function(e){4===e.target.readyState&&o(e.target)})}},{key:"parseBlockMessage",value:function(e){var t,n="";if((void 0!==e.apbct&&(e=e.apbct).blocked&&(n=e.comment),n=void 0!==e.data&&void 0!==(e=e.data).message?e.message:n)&&(document.dispatchEvent(new CustomEvent("apbctAjaxBockAlert",{bubbles:!0,detail:{message:n}})),cleantalkModal.loaded=n,cleantalkModal.open(),1==+e.stop_script&&(window.stop(),e.integration&&"NEXForms"===e.integration&&((t=document.querySelector("form.submit-nex-form button.nex-submit"))&&(t.disabled=!0,t.style.opacity="0.5",t.style.cursor="not-allowed",t.style.pointerEvents="none",t.style.backgroundColor="#ccc",t.style.color="#fff"),t=document.querySelector("div.nex_success_message"))&&(t.style.display="none"),e.integration)&&"ElfsightForm"===e.integration)){var o=[document];try{document.querySelectorAll("iframe").forEach(function(e){try{e.contentDocument&&o.push(e.contentDocument)}catch(e){}})}catch(e){}for(var a=0,r=o;a_createClass(function e(){_classCallCheck(this,e)},[{key:"extract",value:function(e){if(e&&"string"==typeof e){try{e=decodeURIComponent(e)}catch(e){return!1}var t=document.querySelectorAll("form"),n=this.getIdFromAjax(e);if(n){var o,a=_createForOfIteratorHelper(t);try{for(a.s();!(o=a.n()).done;){var r=o.value,i=this.findParentContainer(r);if(i){var c=this.getIdFromHTML(i);if(c===n){var l=i.querySelector("input[id^=apbct_visible_fields_]");if(null!=l&&l.value)return l.value}}}}catch(e){a.e(e)}finally{a.f()}}}return!1}},{key:"getIdFromAjax",value:function(e){return console.warn("getIdFromAjax must be implemented by child class"),null}},{key:"findParentContainer",value:function(e){return console.warn("findParentContainer must be implemented by child class"),null}},{key:"getIdFromHTML",value:function(e){return console.warn("getIdFromHTML must be implemented by child class"),null}}],[{key:"createExtractor",value:function(e){switch(e){case"action=nf_ajax_submit":return new ApbctNinjaFormsVisibleFields;case"action=mailpoet":return new ApbctMailpoetVisibleFields;default:return null}}}]))(),ApbctNinjaFormsVisibleFields=(()=>{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/"id"\s*:\s*"?(\d+)"/,/form_id\s*[:\s]*"?(\d+)"/,/nf-form-(\d+)/,/"id":(\d+)/];t{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/form_id\s*[:\s]*"?(\d+)"/,/data\[form_id\]=(\d+)/,/form_id=(\d+)/];t{function o(){_classCallCheck(this,o)}return _createClass(o,null,[{key:"getFrontendDataLog",value:function(){var e=("undefined"!=typeof ctPublicFunctions&&ctPublicFunctions.cookiePrefix?ctPublicFunctions.cookiePrefix:"")+o.LOG_KEY,t=o.LOG_KEY;if("undefined"!=typeof apbctLocalStorage&&apbctLocalStorage.get){var n=apbctLocalStorage.get(e)||apbctLocalStorage.get(t)||null;if(n&&"string"==typeof n)try{return JSON.parse(n)}catch(e){return""}return n}n=(n=localStorage.getItem(e))||localStorage.getItem(t)||null;try{return"string"==typeof n?JSON.parse(n):n}catch(e){return""}}},{key:"asDTO",value:function(){return{botd_logic_loaded:o.botdLogicLoaded,botd_wrapper_loaded:o.botdWrapperLoaded,frontend_data_log:"",transport_enabled:1}}},{key:"detectScripts",value:function(){if(o.botdWrapperLoaded&&o.botdLogicLoaded)return!0;for(var e=document.getElementsByTagName("script"),t=0;t .comment-body *[class*="comment-author"]',document.querySelector(".apbct-trp .comment-author .comment-author-link")&&(e='.apbct-trp *[class*="comment-author-link"]'),0!==(e=document.querySelectorAll(e+',.apbct-trp > .wp-block-group *[class*="comment-author"],.apbct-trp *[class*="review__author"],.apbct-trp td[class*="column-author"] > strong')).length)&&(e.forEach(function(e,t){var n,o,a,r,i,c,l,s,u;e.className.indexOf("review")<0&&"undefined"==typeof pagenow&&e.parentElement.className.indexOf("group")<0&&"DIV"!=e.tagName||e.querySelector(".comment-metadata")||((n=document.createElement("div")).setAttribute("class","apbct-real-user-badge"),(o=document.createElement("img")).setAttribute("src",d.imgPersonUrl),o.setAttribute("class","apbct-real-user-popup-img"),(a=document.createElement("div")).setAttribute("class","apbct-real-user-popup"),(c=document.createElement("strong")).append(d.phrases.trpHeading),(r=document.createElement("div")).setAttribute("class","apbct-real-user-popup-content_row"),(i=document.createElement("div")).append(" "),i.append(c),i.append(d.phrases.trpContent1),(c=document.createElement("div")).style.display="flex",c.style.gap="5px",(l=document.createElement("div")).append(d.phrases.trpContent2),c.append(l),p&&(l=document.createElement("div"),(s=document.createElement("a")).setAttribute("href",d.trpContentLink),s.setAttribute("target","_blank"),(u=document.createElement("img")).setAttribute("src",ctAdminCommon.new_window_gif),u.setAttribute("alt","New window"),u.setAttribute("style","padding-top:3px"),s.append(u),l.append(s),c.append(l)),r.append(i,c),a.append(r),n.append(o),e.append(n),e.append(a))}),document.querySelectorAll(".apbct-real-user-badge").forEach(function(o){var a=void 0,e=(t.body.addEventListener("click",function(e){-1==e.target.className.indexOf("apbct-real-user")&&-1==e.target.parentElement.className.indexOf("apbct-real-user")&&closeAllPopupTRP()}),o.addEventListener("click",function(){var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.toggle("visible")}),o.addEventListener("mouseenter",function(){closeAllPopupTRP();var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.add("visible")}),o.addEventListener("mouseleave",function(){var t=this;a=setTimeout(function(){var e=t.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.nextElementSibling);e.addEventListener("mouseenter",function(){clearTimeout(a),e.classList.add("visible")}),e.addEventListener("mouseleave",function(){a=setTimeout(function(){e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.addEventListener("touchend",function(){var n=this;a=setTimeout(function(){var e=n.nextElementSibling,t=window.getSelection();e&&t&&e.classList.contains("apbct-real-user-popup")&&0===t.toString().length?e.classList.remove("visible"):(clearTimeout(a),document.addEventListener("selectionchange",function e(){var t=window.getSelection();t&&0===t.toString().length&&(a=setTimeout(function(){var e=o.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},3e3),document.removeEventListener("selectionchange",e))}))},3e3)})})))}); diff --git a/js/apbct-public-bundle_int-protection_gathering.min.js b/js/apbct-public-bundle_int-protection_gathering.min.js index 236516c12..94960ea37 100644 --- a/js/apbct-public-bundle_int-protection_gathering.min.js +++ b/js/apbct-public-bundle_int-protection_gathering.min.js @@ -1 +1 @@ -function ownKeys(t,e){var n,o=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,n)),o}function _objectSpread(t){for(var e=1;et||r=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var n;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n{var n,e;if(r.data.forEach(function(e){e.encoded_email===a[t].dataset.originalString&&(n=e)}),!1===n.is_allowed)return{v:void 0};if(void 0===a[t].href||0!==a[t].href.indexOf("mailto:")&&0!==a[t].href.indexOf("tel:"))a[t].classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a[t])},2e3);else{if(0===a[t].href.indexOf("mailto:"))e="mailto:";else{if(0!==a[t].href.indexOf("tel:"))return 0;e="tel:"}var o=a[t].href.replace(e,"");ctReplaceInTextNodes(a[t],o,ctHtmlToText(n.decoded_email)),a[t].href=e+n.decoded_email,a[t].querySelectorAll("span.apbct-email-encoder").forEach(function(t){var n="";r.data.forEach(function(e){e.encoded_email===t.dataset.originalString&&(n=e.decoded_email)}),t.textContent=ctHtmlToText(n)})}a[t].removeEventListener("click",ctFillDecodedEmailHandler)})(t))&&e)return e.v}else{var n=r.data[0];a.classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a)},2e3),a.removeEventListener("click",ctFillDecodedEmailHandler)}}function ctReplaceInTextNodes(e,t,n){if(t){e.normalize();for(var o,a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);o=a.nextNode();)if(-1!==o.nodeValue.indexOf(t))return void(o.nodeValue=o.nodeValue.replace(t,function(){return n}))}}function ctHtmlToText(e){return e?(new DOMParser).parseFromString(String(e),"text/html").documentElement.textContent:""}function ctProcessDecodedDataResult(e,t){t.setAttribute("title",""),t.removeAttribute("style"),ctFillDecodedEmail(t,e.decoded_email)}function ctFillDecodedEmail(e,t){e.innerHTML=e.innerHTML.replace(/.+?(
)/,t+"$1")}var ctEmailDecoderIsInitialized=!1,cleantalkModal=(document.addEventListener("DOMContentLoaded",function(){if(!ctEmailDecoderIsInitialized){ctEmailDecoderIsInitialized=!0;var e=document.querySelectorAll("[data-original-string]");if("undefined"!=typeof ctPublic&&(ctPublic.encodedEmailNodes=e),e.length)for(var t=0;t$1')):(r.innerHTML="Loading...",t&&this.load(t)),r.setAttribute("id","cleantalk-modal-content"),n.append(r),this.opened=!0},confirm:function(e){var t,n=1_createClass(function e(t){_classCallCheck(this,e),_defineProperty(this,"ajax_parameters",{}),_defineProperty(this,"restParameters",{}),_defineProperty(this,"selector",null),_defineProperty(this,"elements",[]),_defineProperty(this,"eventCallback",void 0),_defineProperty(this,"eventSelector",void 0),_defineProperty(this,"event",void 0),this.select(t)},[{key:"select",value:function(e){return e instanceof HTMLCollection?(this.selector=null,this.elements=[],this.elements=Array.prototype.slice.call(e)):"object"===_typeof(e)?(this.selector=null,this.elements=[],this.elements[0]=e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect(),this}},{key:"addElement",value:function(e){"object"===_typeof(e)?this.elements.push(e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect()}},{key:"push",value:function(e){this.elements.push(e)}},{key:"reduce",value:function(){this.elements=this.elements.slice(0,-1)}},{key:"deselect",value:function(){this.elements=[]}},{key:"css",value:function(e,t){if(t=t||!1,"object"===_typeof(e)){for(var n in e)if(Object.hasOwn(e,n))for(var o=n.replace(/([-_][a-z])/g,function(e){return e.toUpperCase().replace("-","").replace("_","")}),a=0;a(e=document.createElement(e).constructor,!Boolean(~[HTMLElement,HTMLUnknownElement].indexOf(e))))(t)?n||e.tagName.toLowerCase()===t.toLowerCase():t.match(/^[a-z]/)?n||Boolean(e[t]):n||(null!==this.selector?null!==document.querySelector(this.selector+t):this.isWithoutSelector(e,t)):n}},{key:"isWithoutSelector",value:function(e,t){var n,o=!1,a=_createForOfIteratorHelper(document.querySelectorAll(t));try{for(a.s();!(n=a.n()).done;)o=o||e===n.value}catch(e){a.e(e)}finally{a.f()}return o}},{key:"filter",value:function(e){this.selector=null;for(var t=this.elements.length-1;0<=t;t--)this.isElem(this.elements[t],e)||this.elements.splice(Number(t),1);return this}},{key:"parent",value:function(e){return this.select(this.elements[0].parentElement),void 0===e||this.is(e)||this.deselect(),this}},{key:"parents",value:function(e){for(this.select(this.elements[0]);null!==this.elements[this.elements.length-1].parentElement;)this.push(this.elements[this.elements.length-1].parentElement);return this.elements.splice(0,1),void 0!==e&&this.filter(e),this}},{key:"children",value:function(e){return this.select(this.elements[0].children),void 0!==e&&this.filter(e),this}},{key:"siblings",value:function(e){var t=this.elements[0];return this.parent(),this.children(e),this.elements.splice(this.elements.indexOf(t),1),this}},{key:"remove",value:function(){var e,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(e=t.n()).done;)e.value.remove()}catch(e){t.e(e)}finally{t.f()}}},{key:"after",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.after(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"append",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.append(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"fadeIn",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity+(new Date-n)/o,n=+new Date,+t.style.opacity<1&&(window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16))}var t=a.value,n=(t.style.opacity=0,t.style.display="block",+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}},{key:"fadeOut",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity-(new Date-n)/o,n=+new Date,0<+t.style.opacity?window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16):t.style.display="none"}var t=a.value,n=(t.style.opacity=1,+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}}]))());function selectActualNonce(){var e="";return ctPublicFunctions.hasOwnProperty("_fresh_nonce")&&"string"==typeof ctPublicFunctions._fresh_nonce&&0{function o(e){for(var t in _classCallCheck(this,o),_defineProperty(this,"xhr",new XMLHttpRequest),_defineProperty(this,"method","POST"),_defineProperty(this,"url",""),_defineProperty(this,"async",!0),_defineProperty(this,"user",null),_defineProperty(this,"password",null),_defineProperty(this,"data",{}),_defineProperty(this,"button",null),_defineProperty(this,"spinner",null),_defineProperty(this,"progressbar",null),_defineProperty(this,"context",this),_defineProperty(this,"callback",null),_defineProperty(this,"onErrorCallback",null),_defineProperty(this,"responseType","json"),_defineProperty(this,"headers",{}),_defineProperty(this,"timeout",15e3),_defineProperty(this,"methods_to_convert_data_to_URL",["GET","HEAD"]),_defineProperty(this,"body",null),_defineProperty(this,"http_code",0),_defineProperty(this,"status_text",""),e)void 0!==this[t]&&(this[t]=e[t]);if(this.prepare(),Object.keys(this.data).length&&(this.deleteDoubleJSONEncoding(this.data),this.convertData()),!this.url)return console.log("%cXHR%c not URL provided","color: red; font-weight: bold;","color: grey; font-weight: normal;"),!1;this.xhr.open(this.method,this.url,this.async,this.user,this.password),this.setHeaders(),this.xhr.responseType=this.responseType,this.xhr.timeout=this.timeout,this.xhr.onreadystatechange=function(){this.isWpNonceError()?this.getFreshNonceAndRerunXHR(e):this.onReadyStateChange()}.bind(this),this.xhr.onload=function(){this.onLoad()}.bind(this),this.xhr.onprogress=function(e){this.onProgress(e)}.bind(this),this.xhr.onerror=function(){this.onError()}.bind(this),this.xhr.ontimeout=function(){this.onTimeout()}.bind(this),this.xhr.send(this.body)}return _createClass(o,[{key:"prepare",value:function(){this.button&&(this.button.setAttribute("disabled","disabled"),this.button.style.cursor="not-allowed"),this.spinner&&(this.spinner.style.display="inline")}},{key:"complete",value:function(){this.http_code=this.xhr.status,this.status_text=this.xhr.statusText,this.button&&(this.button.removeAttribute("disabled"),this.button.style.cursor="auto"),this.spinner&&(this.spinner.style.display="none"),this.progressbar&&this.progressbar.fadeOut("slow")}},{key:"onReadyStateChange",value:function(){null!==this.on_ready_state_change&&"function"==typeof this.on_ready_state_change&&this.on_ready_state_change()}},{key:"onProgress",value:function(e){null!==this.on_progress&&"function"==typeof this.on_progress&&this.on_progress()}},{key:"onError",value:function(){console.log("error"),this.complete(),this.error(this.http_code,this.status_text),null!==this.onErrorCallback&&"function"==typeof this.onErrorCallback&&this.onErrorCallback(this.status_text)}},{key:"onTimeout",value:function(){this.complete(),this.error(0,"timeout"),null!==this.onErrorCallback&&"function"==typeof this.onErrorCallback&&this.onErrorCallback("Timeout")}},{key:"onLoad",value:function(){if(this.complete(),"json"===this.responseType){if(null===this.xhr.response)return this.error(this.http_code,this.status_text,"No response"),!1;if(void 0!==this.xhr.response.error)return this.error(this.http_code,this.status_text,this.xhr.response.error),!1}null!==this.callback&&"function"==typeof this.callback&&this.callback.call(this.context,this.xhr.response,this.data)}},{key:"isWpNonceError",value:function(){var e=!1,t=!1;return 4==this.xhr.readyState&&(e="object"===_typeof(this.xhr.response)&&null!==this.xhr.response&&this.xhr.response.hasOwnProperty("data")&&this.xhr.response.data.hasOwnProperty("status")&&403===this.xhr.response.data.status,t="-1"===this.xhr.response&&403===this.xhr.status),e||t}},{key:"getFreshNonceAndRerunXHR",value:function(e){var t,n="";e.hasOwnProperty("headers")&&e.headers.hasOwnProperty("X-WP-Nonce")&&(n=e.headers["X-WP-Nonce"]),""!==(n=e.hasOwnProperty("data")&&e.data.hasOwnProperty("_ajax_nonce")?e.data._ajax_nonce:n)&&((t={method:"POST"}).data={spbc_remote_call_action:"get_fresh_wpnonce",plugin_name:"antispam",nonce_prev:n,initial_request_params:e},t.notJson=!0,t.url=ctPublicFunctions._ajax_url,t.callback=function(){for(var e=arguments.length,t=new Array(e),n=0;n{function o(){for(var e=arguments.length,t=new Array(e),n=0;n{function a(){for(var e=arguments.length,t=new Array(e),n=0;n{return _createClass(function e(){_classCallCheck(this,e),this.config=ApbctFetchProxyConfig},[{key:"findMatchingConfig",value:function(e){for(var t="string"==typeof e?e:null!=e&&"string"==typeof e.href?e.href:"",n=0,o=Object.entries(this.config);nMath.floor((new Date).getTime()/1e3)},isSet:function(e){return null!==localStorage.getItem(e)},delete:function(e){localStorage.removeItem(e)},getCleanTalkData:function(){for(var e={},t=0;t_createClass(function e(){_classCallCheck(this,e)},[{key:"attachEventTokenToMultipageGravityForms",value:function(){document.addEventListener("gform_page_loaded",function(){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||"function"!=typeof setEventTokenField||"function"!=typeof botDetectorLocalStorage||setEventTokenField(botDetectorLocalStorage.get("bot_detector_event_token"))})}},{key:"attachEventTokenToWoocommerceGetRequestAddToCart",value:function(){ctPublic.wc_ajax_add_to_cart||document.querySelectorAll("a.add_to_cart_button:not(.product_type_variable):not(.wc-interactive)").forEach(function(o){o.addEventListener("click",function(e){var t=o.getAttribute("href"),n=apbctLocalStorage.get("bot_detector_event_token");n&&(-1===t.indexOf("?")?t+="?":t+="&",o.setAttribute("href",t+="ct_bot_detector_event_token="+n))})})}},{key:"restartBotDetectorEventTokenAttach",value:function(){var e,t=0_createClass(function e(){_classCallCheck(this,e)},[{key:"attachHiddenFieldsToForms",value:function(e){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||+ctPublic.bot_detector_enabled&&!e||(ctNoCookieAttachHiddenFieldsToForms(),document.addEventListener("gform_page_loaded",ctNoCookieAttachHiddenFieldsToForms))}},{key:"attachVisibleFieldsToForm",value:function(e,t){var n=document.createElement("input"),t=(n.setAttribute("type","hidden"),n.setAttribute("id","apbct_visible_fields_"+t),n.setAttribute("name","apbct_visible_fields"),{});t[0]=this.collectVisibleFields(e),n.value=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),e.append(n)}},{key:"attachVisibleFieldsDuringSubmit",value:function(e,t){"native"!==ctPublic.data__cookies_type&&void 0!==e.target.ctFormIndex&&this.setVisibleFieldsCookie(this.collectVisibleFields(t),e.target.ctFormIndex)}},{key:"constructNoCookieHiddenField",value:function(e){var t="hidden",e=("submit"===e&&(t="submit"),""),n=getCleanTalkStorageDataArray(),n=JSON.stringify(n);return n="_ct_no_cookie_data_"+btoa(unescape(encodeURIComponent(n))),(e=document.createElement("input")).setAttribute("name","ct_no_cookie_hidden_field"),e.setAttribute("value",n),e.setAttribute("type",t),e.classList.add("apbct_special_field"),e.classList.add("ct_no_cookie_hidden_field"),e}},{key:"attachNoCookieDuringSubmit",value:function(e){"none"===ctPublic.data__cookies_type&&e.target&&e.target.action&&-1!==e.target.action.toString().indexOf("mailpoet_subscription_form")&&(window.XMLHttpRequest.prototype.send=function(e){var t,n;+ctPublic.bot_detector_enabled?(t=(new ApbctHandler).toolGetEventToken())&&(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+("data%5Bct_bot_detector_event_token%5D="+t+"&")+e)):(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+e)),setTimeout(function(){window.XMLHttpRequest.prototype.send=defaultSend},0)})}},{key:"setVisibleFieldsCookie",value:function(e,t){var n="object"===_typeof(e)&&null!==e?e:{};if("native"===ctPublic.data__cookies_type)for(var o in n){if(10{function p(){_classCallCheck(this,p)}return _createClass(p,[{key:"excludeForm",value:function(e){return!!this.checkHiddenFieldsExclusions(e,"visible_fields")||!!(e.querySelector('input[name="wspsc_add_cart_submit"]')||e.querySelector('input[name="option"][value="com_vikrentcar"]')||e.querySelector('input[name="option"][value="com_vikbooking"]'))||void 0!==e.elements.apbct_visible_fields&&0{var n=_asyncToGenerator(_regenerator().m(function e(t,n){var o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(+ctPublic.settings__forms__check_external){e.n=1;break}return e.a(2,!1);case 1:o=_createForOfIteratorHelper(r),e.p=2,o.s();case 3:if((a=o.n()).done)e.n=6;else{if((a=a.value).matches(t,n))return a=a.getForm(),e.n=4,c(a);e.n=5}break;case 4:if(e.v)return e.a(2,!0);e.n=5;break;case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,a=e.v,o.e(a);case 8:return e.p=8,o.f(),e.f(8);case 9:return e.a(2,!1)}},e,null,[[2,7,8,9]])}));return function(e,t){return n.apply(this,arguments)}})(),r=[{name:"bitrix24",matches:function(e,t){return document.querySelector(".b24-form")&&e.includes("bitrix/services/main/ajax.php?action=crm.site.form.fill")&&t[1].body instanceof FormData},getForm:function(){return document.querySelector(".b24-form form")}},{name:"sender",matches:function(e,t){return e.includes("stats.sender.net/forms")&&"string"==typeof t[1].body},getForm:function(){for(var e=document.querySelectorAll("iframe"),t=0;t{var t=_asyncToGenerator(_regenerator().m(function e(t){var n,o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}return e.a(2,!1);case 1:return n=i(t),m=!0,e.p=2,e.n=3,new Promise(function(e,t){apbct_public_sendAJAX(n,{async:!0,callback:e,onErrorCallback:t})});case 3:return o=e.v,(a=void 0!==o.apbct&&+o.apbct.blocked||void 0!==o.data&&void 0!==o.data.message)&&(new ApbctShowForbidden).parseBlockMessage(o),e.a(2,a);case 4:return e.p=4,e.a(2,!1);case 5:return e.p=5,m=!1,e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(e){return t.apply(this,arguments)}})(),i=function(e){var t,n={action:"cleantalk_force_ajax_check"},o=_createForOfIteratorHelper(e.elements);try{for(o.s();!(t=o.n()).done;){var a=t.value;a.name&&(n[a.name]=a.value)}}catch(e){o.e(e)}finally{o.f()}return+ctPublic.bot_detector_enabled?n.ct_bot_detector_event_token=apbctLocalStorage.get("bot_detector_event_token"):n.ct_no_cookie_hidden_field=getNoCookieData(),n};window.fetch=_asyncToGenerator(_regenerator().m(function e(){var t,n,o,a,r,c,i,l,s,u,d,p=arguments;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:for(t=p.length,n=new Array(t),o=0;o!(!t||"string"!=typeof t)&&["google.com/recaptcha","gstatic.com/recaptcha","recaptcha.google.com","recaptcha.net","www.google.com/recaptcha","apis.google.com","paypal.com","api.paypal.com","www.paypal.com","js.stripe.com","api.stripe.com","checkout.stripe.com","api.doboard.com"].some(function(e){return t.includes(e)}))(a="string"==typeof n[0]?n[0]:(null==(a=n[0])?void 0:a.url)||""))return e.a(2,h.apply(this,n));e.n=2;break;case 2:if(n&&n[0]&&n[1]&&n[1].body){e.n=3;break}return e.a(2,h.apply(this,n));case 3:return e.n=4,b.processFetch(n);case 4:if(!0===e.v)return e.a(2,Promise.reject(new Error("Forbidden")));e.n=5;break;case 5:if(0{try{return n[0].includes(new URL(ctPublicFunctions._rest_url).pathname+"metform/")}catch(e){}})()))try{n[1].body=f(n[1].body,_(+ctPublic.bot_detector_enabled))}catch(e){}if(0{var t=e.value;"undefined"!=typeof ctPublic&&1==+ctPublic.settings__forms__search_test&&null!==t.getAttribute("apbct-form-sign")&&"native_search"===t.getAttribute("apbct-form-sign")&&(t.apbctSearchPrevOnsubmit=t.onsubmit,t.onsubmit=function(e){return n.searchFormHandler(e,t)})})()}catch(e){t.e(e)}finally{t.f()}}},{key:"searchFormHandler",value:function(e,t){try{var n,o,a,r=t.querySelector('[name*="apbct__email_id__"]'),c=null,i=(null!==r&&null!==r.value&&(c=r.value),getCleanTalkStorageDataArray()),l=apbctLocalStorage.get("bot_detector_event_token");null===i&&null===r&&null===l||(e.preventDefault(),n=function(){null!==r&&r.parentNode.removeChild(r),"function"==typeof t.apbctSearchPrevOnsubmit?t.apbctSearchPrevOnsubmit():HTMLFormElement.prototype.submit.call(t)},o=i,null!==c&&(o.apbct_search_form__honeypot_value=c),o.ct_bot_detector_event_token=l,"string"==typeof o.apbct_pixel_url&&-1!==o.apbct_pixel_url.indexOf("%3A")&&(o.apbct_pixel_url=decodeURIComponent(o.apbct_pixel_url)),void 0!==(a=JSON.stringify(o))&&0!==a.length?ctSetAlternativeCookie(a,{callback:n,onErrorCallback:n,forceAltCookies:!0}):n())}catch(e){console.warn("APBCT search form onsubmit handler error. "+e)}}},{key:"toolForAntiCrawlerCheckDuringBotDetector",value:function(){var e=setInterval(function(){localStorage.bot_detector_event_token&&(ctSetCookie("apbct_bot_detector_exist","1","3600"),clearInterval(e))},500)}},{key:"toolGetEventToken",value:function(){var t=localStorage.getItem("bot_detector_event_token");try{t=JSON.parse(t)}catch(e){t=!1}return!(null===t||!1===t||!t.hasOwnProperty("value")||""===t.value)&&t.value}}])})(),ApbctShowForbidden=(()=>_createClass(function e(){_classCallCheck(this,e)},[{key:"prepareBlockForAjaxForms",value:function(){var o=function(e){if(e.responseText&&-1!==e.responseText.indexOf('"apbct')&&-1===e.responseText.indexOf("DOCTYPE"))try{this.parseBlockMessage(JSON.parse(e.responseText))}catch(e){console.log(e.toString())}}.bind(this);"undefined"!=typeof jQuery?"function"!=typeof jQuery(document).ajaxComplete()?jQuery(document).on("ajaxComplete",function(e,t,n){o(t)}):jQuery(document).ajaxComplete(function(e,t,n){o(t)}):"undefined"!=typeof XMLHttpRequest&&document.addEventListener("readystatechange",function(e){4===e.target.readyState&&o(e.target)})}},{key:"parseBlockMessage",value:function(e){var t,n="";if((void 0!==e.apbct&&(e=e.apbct).blocked&&(n=e.comment),n=void 0!==e.data&&void 0!==(e=e.data).message?e.message:n)&&(document.dispatchEvent(new CustomEvent("apbctAjaxBockAlert",{bubbles:!0,detail:{message:n}})),cleantalkModal.loaded=n,cleantalkModal.open(),1==+e.stop_script&&(window.stop(),e.integration&&"NEXForms"===e.integration&&((t=document.querySelector("form.submit-nex-form button.nex-submit"))&&(t.disabled=!0,t.style.opacity="0.5",t.style.cursor="not-allowed",t.style.pointerEvents="none",t.style.backgroundColor="#ccc",t.style.color="#fff"),t=document.querySelector("div.nex_success_message"))&&(t.style.display="none"),e.integration)&&"ElfsightForm"===e.integration)){var o=[document];try{document.querySelectorAll("iframe").forEach(function(e){try{e.contentDocument&&o.push(e.contentDocument)}catch(e){}})}catch(e){}for(var a=0,r=o;a_createClass(function e(){_classCallCheck(this,e)},[{key:"extract",value:function(e){if(e&&"string"==typeof e){try{e=decodeURIComponent(e)}catch(e){return!1}var t=document.querySelectorAll("form"),n=this.getIdFromAjax(e);if(n){var o,a=_createForOfIteratorHelper(t);try{for(a.s();!(o=a.n()).done;){var r=o.value,c=this.findParentContainer(r);if(c){var i=this.getIdFromHTML(c);if(i===n){var l=c.querySelector("input[id^=apbct_visible_fields_]");if(null!=l&&l.value)return l.value}}}}catch(e){a.e(e)}finally{a.f()}}}return!1}},{key:"getIdFromAjax",value:function(e){return console.warn("getIdFromAjax must be implemented by child class"),null}},{key:"findParentContainer",value:function(e){return console.warn("findParentContainer must be implemented by child class"),null}},{key:"getIdFromHTML",value:function(e){return console.warn("getIdFromHTML must be implemented by child class"),null}}],[{key:"createExtractor",value:function(e){switch(e){case"action=nf_ajax_submit":return new ApbctNinjaFormsVisibleFields;case"action=mailpoet":return new ApbctMailpoetVisibleFields;default:return null}}}]))(),ApbctNinjaFormsVisibleFields=(()=>{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/"id"\s*:\s*"?(\d+)"/,/form_id\s*[:\s]*"?(\d+)"/,/nf-form-(\d+)/,/"id":(\d+)/];t{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/form_id\s*[:\s]*"?(\d+)"/,/data\[form_id\]=(\d+)/,/form_id=(\d+)/];t_createClass(function e(){_classCallCheck(this,e)},[{key:"setSessionId",value:function(){var e;apbctSessionStorage.isSet("apbct_session_id")?apbctLocalStorage.set("apbct_page_hits",Number(apbctLocalStorage.get("apbct_page_hits"))+1):(e=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(2,10),apbctSessionStorage.set("apbct_session_id",e,!1),apbctLocalStorage.set("apbct_page_hits",1),document.referrer&&new URL(document.referrer).host!==location.host&&apbctSessionStorage.set("apbct_site_referer",document.referrer,!1))}},{key:"writeReferrersToSessionStorage",value:function(){var e=apbctSessionStorage.get("apbct_session_current_page");!1!==e&&document.location.href!==e&&apbctSessionStorage.set("apbct_prev_referer",e,!1),apbctSessionStorage.set("apbct_session_current_page",document.location.href,!1)}},{key:"setCookiesType",value:function(){var e=apbctLocalStorage.get("ct_cookies_type");e&&e===ctPublic.data__cookies_type||(apbctLocalStorage.set("ct_cookies_type",ctPublic.data__cookies_type),apbctLocalStorage.delete("ct_mouse_moved"),apbctLocalStorage.delete("ct_has_scrolled"))}},{key:"startFieldsListening",value:function(){if(!apbctLocalStorage.isSet("ct_has_key_up")&&!apbctLocalStorage.get("ct_has_key_up")||!apbctLocalStorage.isSet("ct_has_input_focused")&&!apbctLocalStorage.get("ct_has_input_focused")||"native"!==ctPublic.data__cookies_type||void 0===ctGetCookie("ct_has_input_focused")||void 0===ctGetCookie("ct_has_key_up")){var e=ctGetPageForms();if(ctPublic.handled_fields=[],0_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"elementBody",document.querySelector("body")),_defineProperty(this,"collectionForms",document.forms),this.setListeners()},[{key:"setListeners",value:function(){var t=this;this.elementBody.addEventListener("click",function(e){t.checkElementInForms(e,"addClicks")}),this.elementBody.addEventListener("mouseup",function(e){"Range"==document.getSelection().type.toString()&&t.addSelected()}),this.elementBody.addEventListener("mousemove",function(e){t.checkElementInForms(e,"trackMouseMovement")})}},{key:"checkElementInForms",value:function(e,t){for(var n,o=0;o_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"fieldData",{isAutoFill:!1,isUseBuffer:!1,speedDelta:0,firstKeyTimestamp:0,lastKeyTimestamp:0,lastDelta:0,countOfKey:0}),_defineProperty(this,"fields",document.querySelectorAll("textarea[name=comment]")),_defineProperty(this,"data",[])},[{key:"gatheringFields",value:function(){var n=this;Array.prototype.slice.call(this.fields).forEach(function(e,t){n.data.push(Object.assign({},n.fieldData))})}},{key:"setListeners",value:function(){var o=this;this.fields.forEach(function(e,t){e.addEventListener("paste",function(){o.data[t].isUseBuffer=!0})}),this.fields.forEach(function(e,t){e.addEventListener("onautocomplete",function(){o.data[t].isAutoFill=!0})}),this.fields.forEach(function(e,n){e.addEventListener("input",function(){o.data[n].countOfKey++;var e,t=+new Date;1===o.data[n].countOfKey?(o.data[n].lastKeyTimestamp=t,o.data[n].firstKeyTimestamp=t):(e=t-o.data[n].lastKeyTimestamp,2===o.data[n].countOfKey?(o.data[n].lastKeyTimestamp=t,o.data[n].lastDelta=e):2{function o(){_classCallCheck(this,o)}return _createClass(o,null,[{key:"getFrontendDataLog",value:function(){var e=("undefined"!=typeof ctPublicFunctions&&ctPublicFunctions.cookiePrefix?ctPublicFunctions.cookiePrefix:"")+o.LOG_KEY,t=o.LOG_KEY;if(void 0!==apbctLocalStorage&&apbctLocalStorage.get){var n=apbctLocalStorage.get(e)||apbctLocalStorage.get(t)||null;if(n&&"string"==typeof n)try{return JSON.parse(n)}catch(e){return""}return n}n=(n=localStorage.getItem(e))||localStorage.getItem(t)||null;try{return"string"==typeof n?JSON.parse(n):n}catch(e){return""}}},{key:"asDTO",value:function(){return{botd_logic_loaded:o.botdLogicLoaded,botd_wrapper_loaded:o.botdWrapperLoaded,frontend_data_log:"",transport_enabled:1}}},{key:"detectScripts",value:function(){if(o.botdWrapperLoaded&&o.botdLogicLoaded)return!0;for(var e=document.getElementsByTagName("script"),t=0;t .comment-body *[class*="comment-author"]',document.querySelector(".apbct-trp .comment-author .comment-author-link")&&(e='.apbct-trp *[class*="comment-author-link"]'),0!==(e=document.querySelectorAll(e+',.apbct-trp > .wp-block-group *[class*="comment-author"],.apbct-trp *[class*="review__author"],.apbct-trp td[class*="column-author"] > strong')).length)&&(e.forEach(function(e,t){var n,o,a,r,c,i,l,s,u;e.className.indexOf("review")<0&&"undefined"==typeof pagenow&&e.parentElement.className.indexOf("group")<0&&"DIV"!=e.tagName||e.querySelector(".comment-metadata")||((n=document.createElement("div")).setAttribute("class","apbct-real-user-badge"),(o=document.createElement("img")).setAttribute("src",d.imgPersonUrl),o.setAttribute("class","apbct-real-user-popup-img"),(a=document.createElement("div")).setAttribute("class","apbct-real-user-popup"),(i=document.createElement("strong")).append(d.phrases.trpHeading),(r=document.createElement("div")).setAttribute("class","apbct-real-user-popup-content_row"),(c=document.createElement("div")).append(" "),c.append(i),c.append(d.phrases.trpContent1),(i=document.createElement("div")).style.display="flex",i.style.gap="5px",(l=document.createElement("div")).append(d.phrases.trpContent2),i.append(l),p&&(l=document.createElement("div"),(s=document.createElement("a")).setAttribute("href",d.trpContentLink),s.setAttribute("target","_blank"),(u=document.createElement("img")).setAttribute("src",ctAdminCommon.new_window_gif),u.setAttribute("alt","New window"),u.setAttribute("style","padding-top:3px"),s.append(u),l.append(s),i.append(l)),r.append(c,i),a.append(r),n.append(o),e.append(n),e.append(a))}),document.querySelectorAll(".apbct-real-user-badge").forEach(function(o){var a=void 0,e=(t.body.addEventListener("click",function(e){-1==e.target.className.indexOf("apbct-real-user")&&-1==e.target.parentElement.className.indexOf("apbct-real-user")&&closeAllPopupTRP()}),o.addEventListener("click",function(){var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.toggle("visible")}),o.addEventListener("mouseenter",function(){closeAllPopupTRP();var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.add("visible")}),o.addEventListener("mouseleave",function(){var t=this;a=setTimeout(function(){var e=t.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.nextElementSibling);e.addEventListener("mouseenter",function(){clearTimeout(a),e.classList.add("visible")}),e.addEventListener("mouseleave",function(){a=setTimeout(function(){e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.addEventListener("touchend",function(){var n=this;a=setTimeout(function(){var e=n.nextElementSibling,t=window.getSelection();e&&t&&e.classList.contains("apbct-real-user-popup")&&0===t.toString().length?e.classList.remove("visible"):(clearTimeout(a),document.addEventListener("selectionchange",function e(){var t=window.getSelection();t&&0===t.toString().length&&(a=setTimeout(function(){var e=o.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},3e3),document.removeEventListener("selectionchange",e))}))},3e3)})})))}); \ No newline at end of file +function _callSuper(e,t,n){return t=_getPrototypeOf(t),_possibleConstructorReturn(e,_isNativeReflectConstruct()?Reflect.construct(t,n||[],_getPrototypeOf(e).constructor):t.apply(e,n))}function _possibleConstructorReturn(e,t){if(t&&("object"==_typeof(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_isNativeReflectConstruct=function(){return!!e})()}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function ownKeys(t,e){var n,o=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,n)),o}function _objectSpread(t){for(var e=1;et||c=e.length?{done:!0}:{done:!1,value:e[c++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var n;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n{var n,e;if(c.data.forEach(function(e){e.encoded_email===a[t].dataset.originalString&&(n=e)}),!1===n.is_allowed)return{v:void 0};if(void 0===a[t].href||0!==a[t].href.indexOf("mailto:")&&0!==a[t].href.indexOf("tel:"))a[t].classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a[t])},2e3);else{if(0===a[t].href.indexOf("mailto:"))e="mailto:";else{if(0!==a[t].href.indexOf("tel:"))return 0;e="tel:"}var o=a[t].href.replace(e,"");ctReplaceInTextNodes(a[t],o,ctHtmlToText(n.decoded_email)),a[t].href=e+n.decoded_email,a[t].querySelectorAll("span.apbct-email-encoder").forEach(function(t){var n="";c.data.forEach(function(e){e.encoded_email===t.dataset.originalString&&(n=e.decoded_email)}),t.textContent=ctHtmlToText(n)})}a[t].removeEventListener("click",ctFillDecodedEmailHandler)})(t))&&e)return e.v}else{var n=c.data[0];a.classList.add("no-blur"),setTimeout(function(){ctProcessDecodedDataResult(n,a)},2e3),a.removeEventListener("click",ctFillDecodedEmailHandler)}}function ctReplaceInTextNodes(e,t,n){if(t){e.normalize();for(var o,a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);o=a.nextNode();)if(-1!==o.nodeValue.indexOf(t))return void(o.nodeValue=o.nodeValue.replace(t,function(){return n}))}}function ctHtmlToText(e){return e?(new DOMParser).parseFromString(String(e),"text/html").documentElement.textContent:""}function ctProcessDecodedDataResult(e,t){t.setAttribute("title",""),t.removeAttribute("style"),ctFillDecodedEmail(t,e.decoded_email)}function ctFillDecodedEmail(e,t){e.innerHTML=e.innerHTML.replace(/.+?(
)/,t+"$1")}var ctEmailDecoderIsInitialized=!1,cleantalkModal=(document.addEventListener("DOMContentLoaded",function(){if(!ctEmailDecoderIsInitialized){ctEmailDecoderIsInitialized=!0;var e=document.querySelectorAll("[data-original-string]");if("undefined"!=typeof ctPublic&&(ctPublic.encodedEmailNodes=e),e.length)for(var t=0;t$1')):(c.innerHTML="Loading...",t&&this.load(t)),c.setAttribute("id","cleantalk-modal-content"),n.append(c),this.opened=!0},confirm:function(e){var t,n=1_createClass(function e(t){_classCallCheck(this,e),_defineProperty(this,"ajax_parameters",{}),_defineProperty(this,"restParameters",{}),_defineProperty(this,"selector",null),_defineProperty(this,"elements",[]),_defineProperty(this,"eventCallback",void 0),_defineProperty(this,"eventSelector",void 0),_defineProperty(this,"event",void 0),this.select(t)},[{key:"select",value:function(e){return e instanceof HTMLCollection?(this.selector=null,this.elements=[],this.elements=Array.prototype.slice.call(e)):"object"===_typeof(e)?(this.selector=null,this.elements=[],this.elements[0]=e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect(),this}},{key:"addElement",value:function(e){"object"===_typeof(e)?this.elements.push(e):"string"==typeof e?(this.selector=e,this.elements=Array.prototype.slice.call(document.querySelectorAll(e))):this.deselect()}},{key:"push",value:function(e){this.elements.push(e)}},{key:"reduce",value:function(){this.elements=this.elements.slice(0,-1)}},{key:"deselect",value:function(){this.elements=[]}},{key:"css",value:function(e,t){if(t=t||!1,"object"===_typeof(e)){for(var n in e)if(Object.hasOwn(e,n))for(var o=n.replace(/([-_][a-z])/g,function(e){return e.toUpperCase().replace("-","").replace("_","")}),a=0;a(e=document.createElement(e).constructor,!Boolean(~[HTMLElement,HTMLUnknownElement].indexOf(e))))(t)?n||e.tagName.toLowerCase()===t.toLowerCase():t.match(/^[a-z]/)?n||Boolean(e[t]):n||(null!==this.selector?null!==document.querySelector(this.selector+t):this.isWithoutSelector(e,t)):n}},{key:"isWithoutSelector",value:function(e,t){var n,o=!1,a=_createForOfIteratorHelper(document.querySelectorAll(t));try{for(a.s();!(n=a.n()).done;)o=o||e===n.value}catch(e){a.e(e)}finally{a.f()}return o}},{key:"filter",value:function(e){this.selector=null;for(var t=this.elements.length-1;0<=t;t--)this.isElem(this.elements[t],e)||this.elements.splice(Number(t),1);return this}},{key:"parent",value:function(e){return this.select(this.elements[0].parentElement),void 0===e||this.is(e)||this.deselect(),this}},{key:"parents",value:function(e){for(this.select(this.elements[0]);null!==this.elements[this.elements.length-1].parentElement;)this.push(this.elements[this.elements.length-1].parentElement);return this.elements.splice(0,1),void 0!==e&&this.filter(e),this}},{key:"children",value:function(e){return this.select(this.elements[0].children),void 0!==e&&this.filter(e),this}},{key:"siblings",value:function(e){var t=this.elements[0];return this.parent(),this.children(e),this.elements.splice(this.elements.indexOf(t),1),this}},{key:"remove",value:function(){var e,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(e=t.n()).done;)e.value.remove()}catch(e){t.e(e)}finally{t.f()}}},{key:"after",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.after(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"append",value:function(e){var t,n=_createForOfIteratorHelper(this.elements);try{for(n.s();!(t=n.n()).done;)t.value.append(e)}catch(e){n.e(e)}finally{n.f()}}},{key:"fadeIn",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity+(new Date-n)/o,n=+new Date,+t.style.opacity<1&&(window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16))}var t=a.value,n=(t.style.opacity=0,t.style.display="block",+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}},{key:"fadeOut",value:function(o){var a,t=_createForOfIteratorHelper(this.elements);try{for(t.s();!(a=t.n()).done;)(()=>{function e(){t.style.opacity=+t.style.opacity-(new Date-n)/o,n=+new Date,0<+t.style.opacity?window.requestAnimationFrame&&requestAnimationFrame(e)||setTimeout(e,16):t.style.display="none"}var t=a.value,n=(t.style.opacity=1,+new Date);e()})()}catch(e){t.e(e)}finally{t.f()}}}]))());function apbct(e){return(new ApbctCore).select(e)}Object.prototype.hasOwn||Object.defineProperty(Object.prototype,"hasOwn",{value:function(e){return Object.prototype.hasOwnProperty.call(this,e)},enumerable:!1,configurable:!0,writable:!0});var ApbctFetchProxyCallbacks={mailchimpBlock:function(e){try{for(var t=localStorage.length-1;0<=t;t--){var n=localStorage.key(t);n&&-1!==n.indexOf("mcforms")&&localStorage.removeItem(n)}}catch(e){console.warn("Error clearing localStorage by mcforms mask:",e)}}},ApbctFetchProxyConfig={mailchimp:{selector:".mcforms-wrapper",urlPattern:"mcf-integrations-mcmktg.mlchmpcompprduse2.iks2.a.intuit.com/gateway/receive",externalForm:!0,action:"cleantalk_force_mailchimp_shadowroot_check",callbackAllow:!1,callbackBlock:ApbctFetchProxyCallbacks.mailchimpBlock},otterform:{selector:".otter-form__container",urlPattern:"otter/v1/form/frontend",externalForm:!1,action:"cleantalk_force_otterform_check",callbackAllow:!1,callbackBlock:!1},elfsight:{selector:'[class*="elfsight-app"]',urlPattern:"data.elfsight.com/public/resources/form-submissions",externalForm:!0,action:"cleantalk_force_elfsight_check",payloadKey:"elfsight_payload",callbackAllow:!1,callbackBlock:!1}},ApbctFetchProxyProtection=(()=>{return _createClass(function e(){_classCallCheck(this,e),this.config=ApbctFetchProxyConfig},[{key:"findMatchingConfig",value:function(e){for(var t="string"==typeof e?e:null!=e&&"string"==typeof e.href?e.href:"",n=0,o=Object.entries(this.config);n_createClass(function e(){_classCallCheck(this,e)},[{key:"attachEventTokenToMultipageGravityForms",value:function(){document.addEventListener("gform_page_loaded",function(){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||"function"!=typeof setEventTokenField||"function"!=typeof botDetectorLocalStorage||setEventTokenField(botDetectorLocalStorage.get("bot_detector_event_token"))})}},{key:"attachEventTokenToWoocommerceGetRequestAddToCart",value:function(){ctPublic.wc_ajax_add_to_cart||document.querySelectorAll("a.add_to_cart_button:not(.product_type_variable):not(.wc-interactive)").forEach(function(o){o.addEventListener("click",function(e){var t=o.getAttribute("href"),n=apbctLocalStorage.get("bot_detector_event_token");n&&(-1===t.indexOf("?")?t+="?":t+="&",o.setAttribute("href",t+="ct_bot_detector_event_token="+n))})})}},{key:"restartBotDetectorEventTokenAttach",value:function(){var e,t=0_createClass(function e(){_classCallCheck(this,e)},[{key:"attachHiddenFieldsToForms",value:function(e){void 0!==ctPublic.force_alt_cookies&&("undefined"===ctPublic.force_alt_cookies||ctPublic.force_alt_cookies)||+ctPublic.bot_detector_enabled&&!e||(ctNoCookieAttachHiddenFieldsToForms(),document.addEventListener("gform_page_loaded",ctNoCookieAttachHiddenFieldsToForms))}},{key:"attachVisibleFieldsToForm",value:function(e,t){var n=document.createElement("input"),t=(n.setAttribute("type","hidden"),n.setAttribute("id","apbct_visible_fields_"+t),n.setAttribute("name","apbct_visible_fields"),{});t[0]=this.collectVisibleFields(e),n.value=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),e.append(n)}},{key:"attachVisibleFieldsDuringSubmit",value:function(e,t){"native"!==ctPublic.data__cookies_type&&void 0!==e.target.ctFormIndex&&this.setVisibleFieldsCookie(this.collectVisibleFields(t),e.target.ctFormIndex)}},{key:"constructNoCookieHiddenField",value:function(e){var t="hidden",e=("submit"===e&&(t="submit"),""),n=getCleanTalkStorageDataArray(),n=JSON.stringify(n);return n="_ct_no_cookie_data_"+btoa(unescape(encodeURIComponent(n))),(e=document.createElement("input")).setAttribute("name","ct_no_cookie_hidden_field"),e.setAttribute("value",n),e.setAttribute("type",t),e.classList.add("apbct_special_field"),e.classList.add("ct_no_cookie_hidden_field"),e}},{key:"attachNoCookieDuringSubmit",value:function(e){"none"===ctPublic.data__cookies_type&&e.target&&e.target.action&&-1!==e.target.action.toString().indexOf("mailpoet_subscription_form")&&(window.XMLHttpRequest.prototype.send=function(e){var t,n;+ctPublic.bot_detector_enabled?(t=(new ApbctHandler).toolGetEventToken())&&(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+("data%5Bct_bot_detector_event_token%5D="+t+"&")+e)):(n="data%5Bct_no_cookie_hidden_field%5D="+getNoCookieData()+"&",defaultSend.call(this,n+e)),setTimeout(function(){window.XMLHttpRequest.prototype.send=defaultSend},0)})}},{key:"setVisibleFieldsCookie",value:function(e,t){var n="object"===_typeof(e)&&null!==e?e:{};if("native"===ctPublic.data__cookies_type)for(var o in n){if(10{function p(){_classCallCheck(this,p)}return _createClass(p,[{key:"excludeForm",value:function(e){return!!this.checkHiddenFieldsExclusions(e,"visible_fields")||!!(e.querySelector('input[name="wspsc_add_cart_submit"]')||e.querySelector('input[name="option"][value="com_vikrentcar"]')||e.querySelector('input[name="option"][value="com_vikbooking"]'))||void 0!==e.elements.apbct_visible_fields&&0{var n=_asyncToGenerator(_regenerator().m(function e(t,n){var o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(+ctPublic.settings__forms__check_external){e.n=1;break}return e.a(2,!1);case 1:o=_createForOfIteratorHelper(c),e.p=2,o.s();case 3:if((a=o.n()).done)e.n=6;else{if((a=a.value).matches(t,n))return a=a.getForm(),e.n=4,i(a);e.n=5}break;case 4:if(e.v)return e.a(2,!0);e.n=5;break;case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,a=e.v,o.e(a);case 8:return e.p=8,o.f(),e.f(8);case 9:return e.a(2,!1)}},e,null,[[2,7,8,9]])}));return function(e,t){return n.apply(this,arguments)}})(),c=[{name:"bitrix24",matches:function(e,t){return document.querySelector(".b24-form")&&e.includes("bitrix/services/main/ajax.php?action=crm.site.form.fill")&&t[1].body instanceof FormData},getForm:function(){return document.querySelector(".b24-form form")}},{name:"sender",matches:function(e,t){return e.includes("stats.sender.net/forms")&&"string"==typeof t[1].body},getForm:function(){for(var e=document.querySelectorAll("iframe"),t=0;t{var t=_asyncToGenerator(_regenerator().m(function e(t){var n,o,a;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}return e.a(2,!1);case 1:return n=r(t),b=!0,e.p=2,e.n=3,new Promise(function(e,t){apbct_public_sendAJAX(n,{async:!0,callback:e,onErrorCallback:t})});case 3:return o=e.v,(a=void 0!==o.apbct&&+o.apbct.blocked||void 0!==o.data&&void 0!==o.data.message)&&(new ApbctShowForbidden).parseBlockMessage(o),e.a(2,a);case 4:return e.p=4,e.a(2,!1);case 5:return e.p=5,b=!1,e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}));return function(e){return t.apply(this,arguments)}})(),r=function(e){var t,n={action:"cleantalk_force_ajax_check"},o=_createForOfIteratorHelper(e.elements);try{for(o.s();!(t=o.n()).done;){var a=t.value;a.name&&(n[a.name]=a.value)}}catch(e){o.e(e)}finally{o.f()}return+ctPublic.bot_detector_enabled?n.ct_bot_detector_event_token=apbctLocalStorage.get("bot_detector_event_token"):n.ct_no_cookie_hidden_field=getNoCookieData(),n};window.fetch=_asyncToGenerator(_regenerator().m(function e(){var t,n,o,a,c,i,r,l,s,u,d,p=arguments;return _regenerator().w(function(e){for(;;)switch(e.p=e.n){case 0:for(t=p.length,n=new Array(t),o=0;o!(!t||"string"!=typeof t)&&["google.com/recaptcha","gstatic.com/recaptcha","recaptcha.google.com","recaptcha.net","www.google.com/recaptcha","apis.google.com","paypal.com","api.paypal.com","www.paypal.com","js.stripe.com","api.stripe.com","checkout.stripe.com","api.doboard.com"].some(function(e){return t.includes(e)}))(a="string"==typeof n[0]?n[0]:(null==(a=n[0])?void 0:a.url)||""))return e.a(2,h.apply(this,n));e.n=2;break;case 2:if(n&&n[0]&&n[1]&&n[1].body){e.n=3;break}return e.a(2,h.apply(this,n));case 3:return e.n=4,m.processFetch(n);case 4:if(!0===e.v)return e.a(2,Promise.reject(new Error("Forbidden")));e.n=5;break;case 5:if(0{try{return n[0].includes(new URL(ctPublicFunctions._rest_url).pathname+"metform/")}catch(e){}})()))try{n[1].body=f(n[1].body,_(+ctPublic.bot_detector_enabled))}catch(e){}if(0{var t=e.value;"undefined"!=typeof ctPublic&&1==+ctPublic.settings__forms__search_test&&null!==t.getAttribute("apbct-form-sign")&&"native_search"===t.getAttribute("apbct-form-sign")&&(t.apbctSearchPrevOnsubmit=t.onsubmit,t.onsubmit=function(e){return n.searchFormHandler(e,t)})})()}catch(e){t.e(e)}finally{t.f()}}},{key:"searchFormHandler",value:function(e,t){try{var n,o,a,c=t.querySelector('[name*="apbct__email_id__"]'),i=null,r=(null!==c&&null!==c.value&&(i=c.value),getCleanTalkStorageDataArray()),l=apbctLocalStorage.get("bot_detector_event_token");null===r&&null===c&&null===l||(e.preventDefault(),n=function(){null!==c&&c.parentNode.removeChild(c),"function"==typeof t.apbctSearchPrevOnsubmit?t.apbctSearchPrevOnsubmit():HTMLFormElement.prototype.submit.call(t)},o=r,null!==i&&(o.apbct_search_form__honeypot_value=i),o.ct_bot_detector_event_token=l,"string"==typeof o.apbct_pixel_url&&-1!==o.apbct_pixel_url.indexOf("%3A")&&(o.apbct_pixel_url=decodeURIComponent(o.apbct_pixel_url)),void 0!==(a=JSON.stringify(o))&&0!==a.length?ctSetAlternativeCookie(a,{callback:n,onErrorCallback:n,forceAltCookies:!0}):n())}catch(e){console.warn("APBCT search form onsubmit handler error. "+e)}}},{key:"toolForAntiCrawlerCheckDuringBotDetector",value:function(){var e=setInterval(function(){localStorage.bot_detector_event_token&&(ctSetCookie("apbct_bot_detector_exist","1","3600"),clearInterval(e))},500)}},{key:"toolGetEventToken",value:function(){var t=localStorage.getItem("bot_detector_event_token");try{t=JSON.parse(t)}catch(e){t=!1}return!(null===t||!1===t||!t.hasOwnProperty("value")||""===t.value)&&t.value}}])})(),ApbctShowForbidden=(()=>_createClass(function e(){_classCallCheck(this,e)},[{key:"prepareBlockForAjaxForms",value:function(){var o=function(e){if(e.responseText&&-1!==e.responseText.indexOf('"apbct')&&-1===e.responseText.indexOf("DOCTYPE"))try{this.parseBlockMessage(JSON.parse(e.responseText))}catch(e){console.log(e.toString())}}.bind(this);"undefined"!=typeof jQuery?"function"!=typeof jQuery(document).ajaxComplete()?jQuery(document).on("ajaxComplete",function(e,t,n){o(t)}):jQuery(document).ajaxComplete(function(e,t,n){o(t)}):"undefined"!=typeof XMLHttpRequest&&document.addEventListener("readystatechange",function(e){4===e.target.readyState&&o(e.target)})}},{key:"parseBlockMessage",value:function(e){var t,n="";if((void 0!==e.apbct&&(e=e.apbct).blocked&&(n=e.comment),n=void 0!==e.data&&void 0!==(e=e.data).message?e.message:n)&&(document.dispatchEvent(new CustomEvent("apbctAjaxBockAlert",{bubbles:!0,detail:{message:n}})),cleantalkModal.loaded=n,cleantalkModal.open(),1==+e.stop_script&&(window.stop(),e.integration&&"NEXForms"===e.integration&&((t=document.querySelector("form.submit-nex-form button.nex-submit"))&&(t.disabled=!0,t.style.opacity="0.5",t.style.cursor="not-allowed",t.style.pointerEvents="none",t.style.backgroundColor="#ccc",t.style.color="#fff"),t=document.querySelector("div.nex_success_message"))&&(t.style.display="none"),e.integration)&&"ElfsightForm"===e.integration)){var o=[document];try{document.querySelectorAll("iframe").forEach(function(e){try{e.contentDocument&&o.push(e.contentDocument)}catch(e){}})}catch(e){}for(var a=0,c=o;a_createClass(function e(){_classCallCheck(this,e)},[{key:"extract",value:function(e){if(e&&"string"==typeof e){try{e=decodeURIComponent(e)}catch(e){return!1}var t=document.querySelectorAll("form"),n=this.getIdFromAjax(e);if(n){var o,a=_createForOfIteratorHelper(t);try{for(a.s();!(o=a.n()).done;){var c=o.value,i=this.findParentContainer(c);if(i){var r=this.getIdFromHTML(i);if(r===n){var l=i.querySelector("input[id^=apbct_visible_fields_]");if(null!=l&&l.value)return l.value}}}}catch(e){a.e(e)}finally{a.f()}}}return!1}},{key:"getIdFromAjax",value:function(e){return console.warn("getIdFromAjax must be implemented by child class"),null}},{key:"findParentContainer",value:function(e){return console.warn("findParentContainer must be implemented by child class"),null}},{key:"getIdFromHTML",value:function(e){return console.warn("getIdFromHTML must be implemented by child class"),null}}],[{key:"createExtractor",value:function(e){switch(e){case"action=nf_ajax_submit":return new ApbctNinjaFormsVisibleFields;case"action=mailpoet":return new ApbctMailpoetVisibleFields;default:return null}}}]))(),ApbctNinjaFormsVisibleFields=(()=>{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/"id"\s*:\s*"?(\d+)"/,/form_id\s*[:\s]*"?(\d+)"/,/nf-form-(\d+)/,/"id":(\d+)/];t{function e(){return _classCallCheck(this,e),_callSuper(this,e,arguments)}return _inherits(e,ApbctVisibleFieldsExtractor),_createClass(e,[{key:"getIdFromAjax",value:function(e){for(var t=0,n=[/form_id\s*[:\s]*"?(\d+)"/,/data\[form_id\]=(\d+)/,/form_id=(\d+)/];t_createClass(function e(){_classCallCheck(this,e)},[{key:"setSessionId",value:function(){var e;apbctSessionStorage.isSet("apbct_session_id")?apbctLocalStorage.set("apbct_page_hits",Number(apbctLocalStorage.get("apbct_page_hits"))+1):(e=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(2,10),apbctSessionStorage.set("apbct_session_id",e,!1),apbctLocalStorage.set("apbct_page_hits",1),document.referrer&&new URL(document.referrer).host!==location.host&&apbctSessionStorage.set("apbct_site_referer",document.referrer,!1))}},{key:"writeReferrersToSessionStorage",value:function(){var e=apbctSessionStorage.get("apbct_session_current_page");!1!==e&&document.location.href!==e&&apbctSessionStorage.set("apbct_prev_referer",e,!1),apbctSessionStorage.set("apbct_session_current_page",document.location.href,!1)}},{key:"setCookiesType",value:function(){var e=apbctLocalStorage.get("ct_cookies_type");e&&e===ctPublic.data__cookies_type||(apbctLocalStorage.set("ct_cookies_type",ctPublic.data__cookies_type),apbctLocalStorage.delete("ct_mouse_moved"),apbctLocalStorage.delete("ct_has_scrolled"))}},{key:"startFieldsListening",value:function(){if(!apbctLocalStorage.isSet("ct_has_key_up")&&!apbctLocalStorage.get("ct_has_key_up")||!apbctLocalStorage.isSet("ct_has_input_focused")&&!apbctLocalStorage.get("ct_has_input_focused")||"native"!==ctPublic.data__cookies_type||void 0===ctGetCookie("ct_has_input_focused")||void 0===ctGetCookie("ct_has_key_up")){var e=document.forms;if(ctPublic.handled_fields=[],e&&0_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"elementBody",document.querySelector("body")),_defineProperty(this,"collectionForms",document.forms),this.setListeners()},[{key:"setListeners",value:function(){var t=this;this.elementBody.addEventListener("click",function(e){t.checkElementInForms(e,"addClicks")}),this.elementBody.addEventListener("mouseup",function(e){"Range"==document.getSelection().type.toString()&&t.addSelected()}),this.elementBody.addEventListener("mousemove",function(e){t.checkElementInForms(e,"trackMouseMovement")})}},{key:"checkElementInForms",value:function(e,t){for(var n,o=0;o_createClass(function e(){_classCallCheck(this,e),_defineProperty(this,"fieldData",{isAutoFill:!1,isUseBuffer:!1,speedDelta:0,firstKeyTimestamp:0,lastKeyTimestamp:0,lastDelta:0,countOfKey:0}),_defineProperty(this,"fields",document.querySelectorAll("textarea[name=comment]")),_defineProperty(this,"data",[])},[{key:"gatheringFields",value:function(){var n=this;Array.prototype.slice.call(this.fields).forEach(function(e,t){n.data.push(Object.assign({},n.fieldData))})}},{key:"setListeners",value:function(){var o=this;this.fields.forEach(function(e,t){e.addEventListener("paste",function(){o.data[t].isUseBuffer=!0})}),this.fields.forEach(function(e,t){e.addEventListener("onautocomplete",function(){o.data[t].isAutoFill=!0})}),this.fields.forEach(function(e,n){e.addEventListener("input",function(){o.data[n].countOfKey++;var e,t=+new Date;1===o.data[n].countOfKey?(o.data[n].lastKeyTimestamp=t,o.data[n].firstKeyTimestamp=t):(e=t-o.data[n].lastKeyTimestamp,2===o.data[n].countOfKey?(o.data[n].lastKeyTimestamp=t,o.data[n].lastDelta=e):2{function o(){_classCallCheck(this,o)}return _createClass(o,null,[{key:"getFrontendDataLog",value:function(){var e=("undefined"!=typeof ctPublicFunctions&&ctPublicFunctions.cookiePrefix?ctPublicFunctions.cookiePrefix:"")+o.LOG_KEY,t=o.LOG_KEY;if("undefined"!=typeof apbctLocalStorage&&apbctLocalStorage.get){var n=apbctLocalStorage.get(e)||apbctLocalStorage.get(t)||null;if(n&&"string"==typeof n)try{return JSON.parse(n)}catch(e){return""}return n}n=(n=localStorage.getItem(e))||localStorage.getItem(t)||null;try{return"string"==typeof n?JSON.parse(n):n}catch(e){return""}}},{key:"asDTO",value:function(){return{botd_logic_loaded:o.botdLogicLoaded,botd_wrapper_loaded:o.botdWrapperLoaded,frontend_data_log:"",transport_enabled:1}}},{key:"detectScripts",value:function(){if(o.botdWrapperLoaded&&o.botdLogicLoaded)return!0;for(var e=document.getElementsByTagName("script"),t=0;t .comment-body *[class*="comment-author"]',document.querySelector(".apbct-trp .comment-author .comment-author-link")&&(e='.apbct-trp *[class*="comment-author-link"]'),0!==(e=document.querySelectorAll(e+',.apbct-trp > .wp-block-group *[class*="comment-author"],.apbct-trp *[class*="review__author"],.apbct-trp td[class*="column-author"] > strong')).length)&&(e.forEach(function(e,t){var n,o,a,c,i,r,l,s,u;e.className.indexOf("review")<0&&"undefined"==typeof pagenow&&e.parentElement.className.indexOf("group")<0&&"DIV"!=e.tagName||e.querySelector(".comment-metadata")||((n=document.createElement("div")).setAttribute("class","apbct-real-user-badge"),(o=document.createElement("img")).setAttribute("src",d.imgPersonUrl),o.setAttribute("class","apbct-real-user-popup-img"),(a=document.createElement("div")).setAttribute("class","apbct-real-user-popup"),(r=document.createElement("strong")).append(d.phrases.trpHeading),(c=document.createElement("div")).setAttribute("class","apbct-real-user-popup-content_row"),(i=document.createElement("div")).append(" "),i.append(r),i.append(d.phrases.trpContent1),(r=document.createElement("div")).style.display="flex",r.style.gap="5px",(l=document.createElement("div")).append(d.phrases.trpContent2),r.append(l),p&&(l=document.createElement("div"),(s=document.createElement("a")).setAttribute("href",d.trpContentLink),s.setAttribute("target","_blank"),(u=document.createElement("img")).setAttribute("src",ctAdminCommon.new_window_gif),u.setAttribute("alt","New window"),u.setAttribute("style","padding-top:3px"),s.append(u),l.append(s),r.append(l)),c.append(i,r),a.append(c),n.append(o),e.append(n),e.append(a))}),document.querySelectorAll(".apbct-real-user-badge").forEach(function(o){var a=void 0,e=(t.body.addEventListener("click",function(e){-1==e.target.className.indexOf("apbct-real-user")&&-1==e.target.parentElement.className.indexOf("apbct-real-user")&&closeAllPopupTRP()}),o.addEventListener("click",function(){var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.toggle("visible")}),o.addEventListener("mouseenter",function(){closeAllPopupTRP();var e=this.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.add("visible")}),o.addEventListener("mouseleave",function(){var t=this;a=setTimeout(function(){var e=t.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.nextElementSibling);e.addEventListener("mouseenter",function(){clearTimeout(a),e.classList.add("visible")}),e.addEventListener("mouseleave",function(){a=setTimeout(function(){e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},1e3)}),o.addEventListener("touchend",function(){var n=this;a=setTimeout(function(){var e=n.nextElementSibling,t=window.getSelection();e&&t&&e.classList.contains("apbct-real-user-popup")&&0===t.toString().length?e.classList.remove("visible"):(clearTimeout(a),document.addEventListener("selectionchange",function e(){var t=window.getSelection();t&&0===t.toString().length&&(a=setTimeout(function(){var e=o.nextElementSibling;e&&e.classList.contains("apbct-real-user-popup")&&e.classList.remove("visible")},3e3),document.removeEventListener("selectionchange",e))}))},3e3)})})))}); diff --git a/js/apbct_public_new.min.js b/js/apbct_public_new.min.js new file mode 100644 index 000000000..2b992025a --- /dev/null +++ b/js/apbct_public_new.min.js @@ -0,0 +1 @@ +(()=>{"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}var e={get:function(e,n){void 0===n&&(n="value");var o=localStorage.getItem(e);if(null!==o)try{var r=JSON.parse(o);if(!r.hasOwnProperty(n))return r;try{var i=JSON.parse(r[n]);return null!==i&&"object"===t(i)?r[n].toString():i}catch(t){return r[n].toString()}}catch(t){return o}return!1},set:function(t,e){if(arguments.length>2&&void 0!==arguments[2]&&!arguments[2])localStorage.setItem(t,e);else{var n={value:JSON.stringify(e),timestamp:Math.floor((new Date).getTime()/1e3)};localStorage.setItem(t,JSON.stringify(n))}},isAlive:function(t,e){return void 0===e&&(e=86400),this.get(t,"timestamp")+e>Math.floor((new Date).getTime()/1e3)},isSet:function(t){return null!==localStorage.getItem(t)},delete:function(t){localStorage.removeItem(t)},getCleanTalkData:function(){for(var t={},n=0;n0?ctPublicFunctions._fresh_nonce:("admin_ajax"===ctPublicFunctions.data__ajax_type&&ctPublicFunctions.hasOwnProperty("_ajax_nonce")&&"string"==typeof ctPublicFunctions._ajax_nonce&&ctPublicFunctions._ajax_nonce.length>0&&(t=ctPublicFunctions._ajax_nonce),"rest"===ctPublicFunctions.data__ajax_type&&ctPublicFunctions.hasOwnProperty("_rest_nonce")&&"string"==typeof ctPublicFunctions._rest_nonce&&ctPublicFunctions._rest_nonce.length>0&&(t=ctPublicFunctions._rest_nonce),t)}function g(t){return g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},g(t)}function v(t,e){for(var n=0;n2&&void 0!==arguments[2]&&!arguments[2])sessionStorage.setItem(t,e);else{var n={value:JSON.stringify(e),timestamp:Math.floor((new Date).getTime()/1e3)};sessionStorage.setItem(t,JSON.stringify(n))}},isSet:function(t){return null!==sessionStorage.getItem(t)},delete:function(t){sessionStorage.removeItem(t)},getCleanTalkData:function(){for(var t={},e=0;et.length)&&(e=t.length);for(var n=0,o=Array(e);n2&&void 0!==arguments[2]?arguments[2]:"",o=void 0!==n?"expires="+n+"; ":"",r="https:"===location.protocol?"; secure":"",i=t;ctPublicFunctions.cookiePrefix&&(i=ctPublicFunctions.cookiePrefix+t),document.cookie=i+"="+encodeURIComponent(e)+"; "+o+"path=/; samesite=lax"+r}function R(t){var e=t.filter(function(t){var e,n,o=(e=t,n=1,function(t){if(Array.isArray(t))return t}(e)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var o,r,i,a,c=[],s=!0,l=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;s=!1}else for(;!(s=(o=i.call(n)).done)&&(c.push(o.value),c.length!==e);s=!0);}catch(t){l=!0,r=t}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw r}}return c}}(e,n)||function(t,e){if(t){if("string"==typeof t)return C(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?C(t,e):void 0}}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];return!D.includes(o)});if(Array.isArray(e)&&e[0]&&"apbct_bot_detector_exist"===e[0][0]&&(e={apbct_bot_detector_exist:e[0][1]}),"string"==typeof e)try{e=JSON.parse(e)}catch(t){return void console.log("APBCT ERROR: JSON parse error:"+t)}var n=t&&t.callback||null,o=t&&t.onErrorCallback||null;t&&t.forceAltCookies&&(e.apbct_force_alt_cookies=!0),"rest"===ctPublicFunctions.data__ajax_type?("string"==typeof e.apbct_pixel_url&&-1!==e.apbct_pixel_url.indexOf("%3A")&&(e.apbct_pixel_url=decodeURIComponent(e.apbct_pixel_url)),h("alt_sessions",{method:"POST",data:{cookies:e},callback:n,onErrorCallback:o})):"admin_ajax"===ctPublicFunctions.data__ajax_type&&p({action:"apbct_alt_session__save__AJAX",cookies:e},{notJson:1,callback:n,onErrorCallback:o,beforeSend:function(t){t.setRequestHeader("X-Robots-Tag","noindex, nofollow")}})}function I(){!function(t){if("alternative"===ctPublicFunctions.data__cookies_type)return R(t);t.forEach(function(t){var n,o,r=t[0],i=t[1];N.includes(r)?R([t]):("native"===ctPublicFunctions.data__cookies_type&&F(r,i),"none"===ctPublicFunctions.data__cookies_type&&(n=r,o=i,e.set(n,o),E()))})}([["ct_checkjs",void 0!==ctPublic.ct_checkjs_key&&null!==ctPublic.ct_checkjs_key?ctPublic.ct_checkjs_key:0],["ct_ps_timestamp",Math.floor((new Date).getTime()/1e3)],["ct_timezone",(new Date).getTimezoneOffset()/60*-1],["apbct_headless",navigator.webdriver]])}"loading"!==document.readyState?I():document.addEventListener("DOMContentLoaded",I),window.apbct_js_keys__set_input_value=function(t){if(document.querySelectorAll("[name^=ct_checkjs]").length>0)for(var e=document.querySelectorAll("[name^=ct_checkjs]"),n=0;n 0 + ) { + return ctPublicFunctions._fresh_nonce; + } + // select from default rest/ajax nonces + if ( + ctPublicFunctions.data__ajax_type === 'admin_ajax' && + ctPublicFunctions.hasOwnProperty('_ajax_nonce') && + typeof ctPublicFunctions._ajax_nonce === 'string' && + ctPublicFunctions._ajax_nonce.length > 0 + ) { + defaultNonce = ctPublicFunctions._ajax_nonce; + } + if ( + ctPublicFunctions.data__ajax_type === 'rest' && + ctPublicFunctions.hasOwnProperty('_rest_nonce') && + typeof ctPublicFunctions._rest_nonce === 'string' && + ctPublicFunctions._rest_nonce.length > 0 + ) { + defaultNonce = ctPublicFunctions._rest_nonce; + } + + return defaultNonce; +} diff --git a/js/new_src/functions/noCookieHiddenField.js b/js/new_src/functions/noCookieHiddenField.js new file mode 100644 index 000000000..aeef4755b --- /dev/null +++ b/js/new_src/functions/noCookieHiddenField.js @@ -0,0 +1,237 @@ +import {ApbctBrowserState} from '../utils/botDetectorLog'; +import {apbctLocalStorage} from '../utils/apbctLocalStorage'; +import {apbctSessionStorage} from '../utils/apbctSessionStorage'; + +export function ctNoCookieAttachHiddenFieldsToForms() { + if (ctPublic.data__cookies_type !== 'none') { + return; + } + + let forms = ctGetPageForms(); + + if (forms) { + for ( let i = 0; i < forms.length; i++ ) { + if ( checkHiddenFieldsExclusions(document.forms[i], 'no_cookie') ) { + continue; + } + + // ignore forms with get method @todo We need to think about this + if (document.forms[i].getAttribute('method') === null || + document.forms[i].getAttribute('method').toLowerCase() === 'post') { + // remove old sets + let fields = forms[i].querySelectorAll('.ct_no_cookie_hidden_field'); + for ( let j = 0; j < fields.length; j++ ) { + fields[j].outerHTML = ''; + } + // add new set + document.forms[i].append(constructNoCookieHiddenField()); + } + } + } +} + +/** + * @return {boolean|*} + */ +function ctGetPageForms() { // eslint-disable-line no-unused-vars + let forms = document.forms; + if (forms) { + return forms; + } + return false; +} + +/** + * Check if the form should be skipped from hidden field attach. + * Return exclusion description if it is found, false otherwise. + * @param {object} form Form dom object. + * @param {string} hiddenFieldType Type of hidden field that needs to be checked. + * Possible values: 'no_cookie'|'visible_fields'. + * @return {boolean} + */ +function checkHiddenFieldsExclusions(form, hiddenFieldType) { + const formAction = typeof(form.action) == 'string' ? form.action : ''; + // Ajax Search Lite + if (Boolean(form.querySelector('fieldset.asl_sett_scroll'))) { + return true; + } + // Super WooCommerce Product Filter + if (form.classList.contains('swpf-instant-filtering')) { + return true; + } + // PayU 3-rd party service forms + if (formAction.indexOf('secure.payu.com') !== -1 ) { + return true; + } + + if (formAction.indexOf('hsforms') !== -1 ) { + return true; + } + + if (formAction.indexOf('secureinternetbank.com') !== -1 ) { + return true; + } + + if (typeof (hiddenFieldType) === 'string' && + ['visible_fields', 'no_cookie'].indexOf(hiddenFieldType) !== -1) { + const exclusions = getHiddenFieldExclusionsType(form); + return exclusions[hiddenFieldType] === 1; + } + + return false; +} + +/** + * Get type of the field should be excluded. Return exclusion signs via object. + * @param {object} form Form dom object. + * @return {object} {'no_cookie': 1|0, 'visible_fields': 1|0} + */ +function getHiddenFieldExclusionsType(form) { + // visible fields + let result = {'no_cookie': 0, 'visible_fields': 0}; + if ( + +ctPublic.data__visible_fields_required === 0 || + (form.method.toString().toLowerCase() === 'get' && + form.querySelectorAll('.nf-form-content').length === 0 && + form.id !== 'twt_cc_signup') || + form.classList.contains('slp_search_form') || // StoreLocatorPlus form + form.parentElement.classList.contains('mec-booking') || + form.action.toString().indexOf('activehosted.com') !== -1 || // Active Campaign + (form.id && form.id === 'caspioform') || // Caspio Form + (form.classList && form.classList.contains('tinkoffPayRow')) || // TinkoffPayForm + (form.classList && form.classList.contains('give-form')) || // GiveWP + (form.id && form.id === 'ult-forgot-password-form') || // ult forgot password + (form.id && form.id.toString().indexOf('calculatedfields') !== -1) || // CalculatedFieldsForm + (form.id && form.id.toString().indexOf('sac-form') !== -1) || // Simple Ajax Chat + (form.id && + form.id.toString().indexOf('cp_tslotsbooking_pform') !== -1) || // WP Time Slots Booking Form + (form.name && + form.name.toString().indexOf('cp_tslotsbooking_pform') !== -1) || // WP Time Slots Booking Form + form.action.toString() === 'https://epayment.epymtservice.com/epay.jhtml' || // Custom form + (form.name && form.name.toString().indexOf('tribe-bar-form') !== -1) || // The Events Calendar + (form.id && form.id === 'ihf-login-form') || // Optima Express login + (form.id && + form.id === 'subscriberForm' && + form.action.toString().indexOf('actionType=update') !== -1) || // Optima Express update + (form.id && form.id === 'ihf-main-search-form') || // Optima Express search + (form.id && form.id === 'frmCalc') || // nobletitle-calc + form.action.toString().indexOf('property-organizer-delete-saved-search-submit') !== -1 || + form.querySelector('a[name="login"]') !== null // digimember login form + ) { + result.visible_fields = 1; + } + + // ajax search pro exclusion + let ncFieldExclusionsSign = form.parentNode; + if ( + ncFieldExclusionsSign && ncFieldExclusionsSign.classList.contains('proinput') || + (form.name === 'options' && form.classList.contains('asp-fss-flex')) + ) { + result.no_cookie = 1; + } + + // woocommerce login form + if ( + form && form.classList.contains('woocommerce-form-login') + ) { + result.visible_fields = 1; + result.no_cookie = 1; + } + + // WordPress login form (wp-login.php is excluded from spam check in PHP) + if ( + (form.id && form.id === 'loginform') || + form.action.toString().indexOf('wp-login.php') !== -1 + ) { + result.visible_fields = 1; + result.no_cookie = 1; + } + + return result; +} + +/** + * Construct hidden field for no cookie + * @param {string} type + * @return {HTMLInputElement} + */ +function constructNoCookieHiddenField(type) { + let inputType = 'hidden'; + if (type === 'submit') { + inputType = 'submit'; + } + let field = ''; + + let noCookieData = getCleanTalkStorageDataArray(); + noCookieData = JSON.stringify(noCookieData); + noCookieData = '_ct_no_cookie_data_' + btoa(unescape(encodeURIComponent(noCookieData))); + field = document.createElement('input'); + field.setAttribute('name', 'ct_no_cookie_hidden_field'); + field.setAttribute('value', noCookieData); + field.setAttribute('type', inputType); + field.classList.add('apbct_special_field'); + field.classList.add('ct_no_cookie_hidden_field'); + return field; +} + +/** + * Retrieves the clentalk "cookie" data from starages. + * Contains {...noCookieDataLocal, ...noCookieDataSession, ...noCookieDataTypo, ...noCookieDataFromUserActivity}. + * @return {string} + */ +function getCleanTalkStorageDataArray() { // eslint-disable-line no-unused-vars + let noCookieDataLocal = apbctLocalStorage.getCleanTalkData(); + let noCookieDataSession = apbctSessionStorage.getCleanTalkData(); + + let noCookieDataTypo = {typo: []}; + if (document.ctTypoData && document.ctTypoData.data) { + noCookieDataTypo = {typo: document.ctTypoData.data}; + } + + let noCookieDataFromUserActivity = {collecting_user_activity_data: []}; + + if (document.ctCollectingUserActivityData) { + let collectingUserActivityData = JSON.parse(JSON.stringify(document.ctCollectingUserActivityData)); + noCookieDataFromUserActivity = {collecting_user_activity_data: collectingUserActivityData}; + } + + let browserStateData = {}; + if (typeof apbctGetBrowserStatePair === 'function') { + const browserState = apbctGetBrowserStatePair(); + if (browserState) { + browserStateData[browserState.key] = browserState.value; + } + } + + return { + ...noCookieDataLocal, + ...noCookieDataSession, + ...noCookieDataTypo, + ...noCookieDataFromUserActivity, + ...browserStateData, + }; +} + +/** + * Get the browser state as a key/value pair to attach it to an intercepted request. + * @return {{key: string, value: string}|false} False if there is nothing to attach. + */ +function apbctGetBrowserStatePair() { // eslint-disable-line no-unused-vars + try { + ApbctBrowserState.detectScripts(); + let state = ApbctBrowserState.asDTO(); + if ( ApbctBrowserState.botdLogicLoaded ) { + const transportEnabled = localStorage.getItem(ApbctBrowserState.TRANSPORT_ENABLED_SIGN_KEY) === '1'; + if (transportEnabled) { + state.frontend_data_log = ApbctBrowserState.getFrontendDataLog(); + } else { + state.transport_enabled = 0; + } + } else { + state.frontend_data_log = ApbctBrowserState.getFrontendDataLog(); + } + return {key: ApbctBrowserState.STATE_KEY, value: JSON.stringify(state)}; + } catch (e) { + return false; + } +} diff --git a/js/new_src/functions/storeParams.js b/js/new_src/functions/storeParams.js new file mode 100644 index 000000000..adb5563ac --- /dev/null +++ b/js/new_src/functions/storeParams.js @@ -0,0 +1,127 @@ +import {apbctLocalStorage} from '../utils/apbctLocalStorage'; +import {sendAJAX, sendREST} from './ajaxHandlers'; +import {ctNoCookieAttachHiddenFieldsToForms} from './noCookieHiddenField'; + +const PARAMS_TO_FORCE_ALT = [ + 'ct_sfw_pass_key', + 'ct_sfw_passed', + 'apbct_antibot', + 'apbct_anticrawler_passed', + 'apbct_bot_detector_exist', + 'apbct_antiflood_passed', + 'apbct_email_encoder_passed', +]; + +const PARAMS_SKIP_ALT = [ + 'ct_pointer_data' +] + +/** + * @param {array} params + */ +export function storeParams(params) { + if (ctPublicFunctions.data__cookies_type === 'alternative') { + return ctSetAltCookies(params); + } + params.forEach( function(param) { + const paramName = param[0]; + const paramValue = param[1]; + + if (PARAMS_TO_FORCE_ALT.includes(paramName)) { + ctSetAltCookies([param]); + return; + } + + if (ctPublicFunctions.data__cookies_type === 'native') { + ctSetCookie(paramName, paramValue); + } + + if (ctPublicFunctions.data__cookies_type === 'none') { + ctSetNoCookie(paramName, paramValue); + } + }); +} + +export function ctSetCookie(name, value, expires = '') { + const _expires = typeof expires !== 'undefined' ? 'expires=' + expires + '; ' : ''; + const _secure = location.protocol === 'https:' ? '; secure' : ''; + let _cookieName = name; + if ( ctPublicFunctions.cookiePrefix ) { + _cookieName = ctPublicFunctions.cookiePrefix + name; + } + document.cookie = + _cookieName + '=' + encodeURIComponent(value) + '; ' + + _expires + + 'path=/; ' + + 'samesite=lax' + + _secure; +} + +/** + * @param {array} params + */ +export function ctSetAltCookies(params) { + let filteredParams = params.filter(([name]) => !PARAMS_SKIP_ALT.includes(name)); + + // if cookies is array, convert it to object + if (Array.isArray(filteredParams) && filteredParams[0] && filteredParams[0][0] === 'apbct_bot_detector_exist') { + filteredParams = {apbct_bot_detector_exist: filteredParams[0][1]}; + } + // Only try to parse if cookies is a string (JSON) + if (typeof filteredParams === 'string') { + try { + filteredParams = JSON.parse(filteredParams); + } catch (e) { + console.log('APBCT ERROR: JSON parse error:' + e); + return; + } + } + + const callback = params && params.callback || null; + const onErrorCallback = params && params.onErrorCallback || null; + + if ( params && params.forceAltCookies ) { + filteredParams.apbct_force_alt_cookies = true; + } + + // Using REST API handler + if ( ctPublicFunctions.data__ajax_type === 'rest' ) { + // fix for url encoded cookie apbct_pixel_url on REST route + if (typeof filteredParams.apbct_pixel_url === 'string' && + filteredParams.apbct_pixel_url.indexOf('%3A') !== -1 + ) { + filteredParams.apbct_pixel_url = decodeURIComponent(filteredParams.apbct_pixel_url); + } + sendREST( + 'alt_sessions', + { + method: 'POST', + data: {cookies: filteredParams}, + callback: callback, + onErrorCallback: onErrorCallback, + }, + ); + + // Using AJAX request and handler + } else if ( ctPublicFunctions.data__ajax_type === 'admin_ajax' ) { + sendAJAX( + { + action: 'apbct_alt_session__save__AJAX', + cookies: filteredParams, + }, + { + notJson: 1, + callback: callback, + onErrorCallback: onErrorCallback, + beforeSend: function(xhr) { + xhr.setRequestHeader('X-Robots-Tag', 'noindex, nofollow'); + }, + }, + ); + } +} + +export function ctSetNoCookie(name, value) { + apbctLocalStorage.set(name, value); + ctNoCookieAttachHiddenFieldsToForms(); +} diff --git a/js/new_src/index.js b/js/new_src/index.js new file mode 100644 index 000000000..219613b68 --- /dev/null +++ b/js/new_src/index.js @@ -0,0 +1,34 @@ +import {initParams} from "./initParams"; +import {setInputValue} from "./params/checkJs"; +import {apbctLocalStorage} from './utils/apbctLocalStorage'; +import {apbctSessionStorage} from './utils/apbctSessionStorage'; +import {ctNoCookieAttachHiddenFieldsToForms} from './functions/noCookieHiddenField'; +import {ctSetCookie, ctSetAltCookies} from './functions/storeParams'; +import {sendAJAX, sendREST} from "./functions/ajaxHandlers"; + +if (document.readyState !== 'loading') { + initParams(); +} else { + document.addEventListener('DOMContentLoaded', initParams); +} + +// Hack - it have to be defined for the ability to use from inline JS code in the page +window.apbct_js_keys__set_input_value = setInputValue; + +// Temporary solutions for the backward compatibility with the old version of the plugin. It will be removed in the future. + +// ctSetCookies and ctSetAlternativeCookie are calling in the old JS files +window.ctSetCookie = ctSetCookie; +window.ctSetAlternativeCookie = ctSetAltCookies; + +// apbct_js_keys__sendAJAX and apbct_js_keys__sendREST are calling in the old JS files +window.apbct_public_sendAJAX = sendAJAX; +window.apbct_public_sendREST = sendREST; + +// apbctLocalStorage is calling in the old JS files +window.apbctLocalStorage = apbctLocalStorage; +// apbctSessionStorage is calling in the old JS files +window.apbctSessionStorage = apbctSessionStorage; +// ctNoCookieAttachHiddenFieldsToForms is calling in the old JS files +window.ctNoCookieAttachHiddenFieldsToForms = ctNoCookieAttachHiddenFieldsToForms; + diff --git a/js/new_src/initParams.js b/js/new_src/initParams.js new file mode 100644 index 000000000..379432c02 --- /dev/null +++ b/js/new_src/initParams.js @@ -0,0 +1,16 @@ +import {storeParams} from './functions/storeParams'; +import {PARAM_NAME as CHECK_JS_PARAM_NAME, initCheckJs} from './params/checkJs'; +import {PARAM_NAME as PAGE_SET_TIMESTAMP_PARAM_NAME, initPageSetTimestamp} from './params/pageSetTimestamp'; +import {PARAM_NAME as TIMEZONE_PARAM_NAME, initTimezone} from "./params/timezone"; +import {PARAM_NAME as HEADLESS_PARAM_NAME, initHeadless} from "./params/headless"; + +export function initParams() { + const initParams = [ + [CHECK_JS_PARAM_NAME, initCheckJs()], + [PAGE_SET_TIMESTAMP_PARAM_NAME, initPageSetTimestamp()], + [TIMEZONE_PARAM_NAME, initTimezone()], + [HEADLESS_PARAM_NAME, initHeadless()], + ]; + + storeParams(initParams); +} diff --git a/js/new_src/params/checkJs.js b/js/new_src/params/checkJs.js new file mode 100644 index 000000000..2cfb5a064 --- /dev/null +++ b/js/new_src/params/checkJs.js @@ -0,0 +1,17 @@ +export const PARAM_NAME = 'ct_checkjs'; + +export function initCheckJs() { + if (typeof ctPublic.ct_checkjs_key !== 'undefined' && ctPublic.ct_checkjs_key !== null) { + return ctPublic.ct_checkjs_key; + } + return 0; +} + +export function setInputValue(result) { + if ( document.querySelectorAll('[name^=ct_checkjs]').length > 0 ) { + let elements = document.querySelectorAll('[name^=ct_checkjs]'); + for ( let i = 0; i < elements.length; i++ ) { + elements[i].value = result.js_key; + } + } +} diff --git a/js/new_src/params/headless.js b/js/new_src/params/headless.js new file mode 100644 index 000000000..3d64aa5b8 --- /dev/null +++ b/js/new_src/params/headless.js @@ -0,0 +1,5 @@ +export const PARAM_NAME = 'apbct_headless'; + +export function initHeadless() { + return navigator.webdriver; +} diff --git a/js/new_src/params/pageSetTimestamp.js b/js/new_src/params/pageSetTimestamp.js new file mode 100644 index 000000000..0f2a486f9 --- /dev/null +++ b/js/new_src/params/pageSetTimestamp.js @@ -0,0 +1,5 @@ +export const PARAM_NAME = 'ct_ps_timestamp'; + +export function initPageSetTimestamp() { + return Math.floor(new Date().getTime() / 1000); +} diff --git a/js/new_src/params/timezone.js b/js/new_src/params/timezone.js new file mode 100644 index 000000000..8cfd10d46 --- /dev/null +++ b/js/new_src/params/timezone.js @@ -0,0 +1,6 @@ +export const PARAM_NAME = 'ct_timezone'; + +export function initTimezone() { + const ctDate = new Date(); + return ctDate.getTimezoneOffset()/60*(-1); +} diff --git a/js/new_src/utils/apbctLocalStorage.js b/js/new_src/utils/apbctLocalStorage.js new file mode 100644 index 000000000..4cb596610 --- /dev/null +++ b/js/new_src/utils/apbctLocalStorage.js @@ -0,0 +1,61 @@ +export const apbctLocalStorage = { + get: function(key, property) { + if ( typeof property === 'undefined' ) { + property = 'value'; + } + const storageValue = localStorage.getItem(key); + if ( storageValue !== null ) { + try { + const json = JSON.parse(storageValue); + if ( json.hasOwnProperty(property) ) { + try { + const parsed = JSON.parse( json[property] ); + if ( parsed !== null && typeof parsed === 'object' ) { + return json[property].toString(); + } + return parsed; + } catch (e) { + return json[property].toString(); + } + } else { + return json; + } + } catch (e) { + return storageValue; + } + } + return false; + }, + set: function(key, value, isJson = true) { + if (isJson) { + let objToSave = {'value': JSON.stringify(value), 'timestamp': Math.floor(new Date().getTime() / 1000)}; + localStorage.setItem(key, JSON.stringify(objToSave)); + } else { + localStorage.setItem(key, value); + } + }, + isAlive: function(key, maxLifetime) { + if ( typeof maxLifetime === 'undefined' ) { + maxLifetime = 86400; + } + const keyTimestamp = this.get(key, 'timestamp'); + return keyTimestamp + maxLifetime > Math.floor(new Date().getTime() / 1000); + }, + isSet: function(key) { + return localStorage.getItem(key) !== null; + }, + delete: function(key) { + localStorage.removeItem(key); + }, + getCleanTalkData: function() { + let data = {}; + for (let i=0; iPHP transport and goes + * to the moderate request as sender_info.bot_detector_frontend_data_log. + */ +export class ApbctBrowserState { + static STATE_KEY = 'apbct_browser_state'; + static LOG_KEY = 'ct_bot_detector_frontend_data_log'; + static SCRIPT_SIGNS = { + botd_wrapper_loaded: 'ct-bot-detector-wrapper', + botd_logic_loaded: 'ct-bot-detector.min', + }; + /** + * This LS key is set on bot-detector side + * @type {string} + */ + static TRANSPORT_ENABLED_SIGN_KEY = 'bot_detector_log_transport_enabled'; + static botdWrapperLoaded = 0; + static botdLogicLoaded = 0; + + /** + * Get the current browser state as a JSON string ready to be transferred. + * @return {string} Empty string if the bot detector is disabled or on any collecting error. + */ + static getFrontendDataLog() { + const prefix = (typeof ctPublicFunctions !== 'undefined' && ctPublicFunctions.cookiePrefix) ? + ctPublicFunctions.cookiePrefix : + ''; + const logKey = prefix + ApbctBrowserState.LOG_KEY; + const noPrefixLogKey = ApbctBrowserState.LOG_KEY; + + if (typeof apbctLocalStorage !== 'undefined' && apbctLocalStorage.get) { + const logObject = apbctLocalStorage.get(logKey) || apbctLocalStorage.get(noPrefixLogKey) || null; + if (logObject && typeof logObject === 'string') { + try { + return JSON.parse(logObject); + } catch (e) { + return ''; + } + } + return logObject; + } + + let rawLog = localStorage.getItem(logKey); + if (!rawLog) { + rawLog = localStorage.getItem(noPrefixLogKey) || null; + } + + try { + return typeof rawLog === 'string' ? JSON.parse(rawLog) : rawLog; + } catch (e) { + return ''; + } + } + + /** + * + * @return {object} + */ + static asDTO() { + return { + botd_logic_loaded: ApbctBrowserState.botdLogicLoaded, + botd_wrapper_loaded: ApbctBrowserState.botdWrapperLoaded, + frontend_data_log: '', + transport_enabled: 1, + }; + } + + /** + * Look for the bot detector scripts in the page DOM. + * @return {boolean} True if both scripts are found. + */ + static detectScripts() { + if (ApbctBrowserState.botdWrapperLoaded && ApbctBrowserState.botdLogicLoaded) { + return true; + } + + const scripts = document.getElementsByTagName('script'); + + for (let i = 0; i < scripts.length; i++) { + const src = scripts[i].getAttribute('src'); + if (!src) { + continue; + } + if (src.indexOf(ApbctBrowserState.SCRIPT_SIGNS.botd_wrapper_loaded) !== -1) { + ApbctBrowserState.botdWrapperLoaded = 1; + } else if (src.indexOf(ApbctBrowserState.SCRIPT_SIGNS.botd_logic_loaded) !== -1) { + ApbctBrowserState.botdLogicLoaded = 1; + } + } + + // The bot detector logic sets this flag on its own start + return !!ApbctBrowserState.botdWrapperLoaded && !!ApbctBrowserState.botdLogicLoaded; + } +} + + diff --git a/js/prebuild/apbct-public-bundle.js b/js/prebuild/apbct-public-bundle.js index a462c690f..9e374cb1d 100644 --- a/js/prebuild/apbct-public-bundle.js +++ b/js/prebuild/apbct-public-bundle.js @@ -1481,41 +1481,6 @@ class ApbctCore { } } -/** - * Select actual WP nonce depending on the ajax type and the fresh nonce provided. - * @return {string} url - */ -function selectActualNonce() { - let defaultNonce = ''; - // return fresh nonce immediately if persists - if ( - ctPublicFunctions.hasOwnProperty('_fresh_nonce') && - typeof ctPublicFunctions._fresh_nonce === 'string' && - ctPublicFunctions._fresh_nonce.length > 0 - ) { - return ctPublicFunctions._fresh_nonce; - } - // select from default rest/ajax nonces - if ( - ctPublicFunctions.data__ajax_type === 'admin_ajax' && - ctPublicFunctions.hasOwnProperty('_ajax_nonce') && - typeof ctPublicFunctions._ajax_nonce === 'string' && - ctPublicFunctions._ajax_nonce.length > 0 - ) { - defaultNonce = ctPublicFunctions._ajax_nonce; - } - if ( - ctPublicFunctions.data__ajax_type === 'rest' && - ctPublicFunctions.hasOwnProperty('_rest_nonce') && - typeof ctPublicFunctions._rest_nonce === 'string' && - ctPublicFunctions._rest_nonce.length > 0 - ) { - defaultNonce = ctPublicFunctions._rest_nonce; - } - - return defaultNonce; -} - /** * Enter point to ApbctCore class * @@ -1528,452 +1493,6 @@ function apbct(params) { .select(params); } -/** - * ApbctXhr - */ -class ApbctXhr { - xhr = new XMLHttpRequest(); - - // Base parameters - method = 'POST'; // HTTP-request type - url = ''; // URL to send the request - async = true; - user = null; // HTTP-authorization username - password = null; // HTTP-authorization password - data = {}; // Data to send - - // Optional params - button = null; // Button that should be disabled when request is performing - spinner = null; // Spinner that should appear when request is in process - progressbar = null; // Progress bar for the current request - context = this; // Context - callback = null; - onErrorCallback = null; - - responseType = 'json'; // Expected data type from server - headers = {}; - timeout = 15000; // Request timeout in milliseconds - - methods_to_convert_data_to_URL = [ - 'GET', - 'HEAD', - ]; - - body = null; - http_code = 0; - status_text = ''; - - // eslint-disable-next-line require-jsdoc - constructor(parameters) { - // Set class properties - for ( let key in parameters ) { - if ( typeof this[key] !== 'undefined' ) { - this[key] = parameters[key]; - } - } - - // Modifying DOM-elements - this.prepare(); - - // Modify URL with data for GET and HEAD requests - if ( Object.keys(this.data).length ) { - this.deleteDoubleJSONEncoding(this.data); - this.convertData(); - } - - if ( ! this.url ) { - console.log('%cXHR%c not URL provided', - 'color: red; font-weight: bold;', 'color: grey; font-weight: normal;'); - return false; - } - - // Configure the request - this.xhr.open(this.method, this.url, this.async, this.user, this.password); - this.setHeaders(); - - this.xhr.responseType = this.responseType; - this.xhr.timeout = this.timeout; - - /* EVENTS */ - // Monitoring status - this.xhr.onreadystatechange = function() { - if (this.isWpNonceError()) { - this.getFreshNonceAndRerunXHR(parameters); - return; - } - this.onReadyStateChange(); - }.bind(this); - - // Run callback - this.xhr.onload = function() { - this.onLoad(); - }.bind(this); - - // On progress - this.xhr.onprogress = function(event) { - this.onProgress(event); - }.bind(this); - - // On error - this.xhr.onerror = function() { - this.onError(); - }.bind(this); - - this.xhr.ontimeout = function() { - this.onTimeout(); - }.bind(this); - - // Send the request - this.xhr.send(this.body); - } - - /** - * prepare - */ - prepare() { - // Disable button - if (this.button) { - this.button.setAttribute('disabled', 'disabled'); - this.button.style.cursor = 'not-allowed'; - } - - // Enable spinner - if (this.spinner) { - this.spinner.style.display = 'inline'; - } - } - - /** - * complete - */ - complete() { - this.http_code = this.xhr.status; - this.status_text = this.xhr.statusText; - - // Disable button - if (this.button) { - this.button.removeAttribute('disabled'); - this.button.style.cursor = 'auto'; - } - - // Enable spinner - if (this.spinner) { - this.spinner.style.display = 'none'; - } - - if ( this.progressbar ) { - this.progressbar.fadeOut('slow'); - } - } - - /** - * onReadyStateChange - */ - onReadyStateChange() { - if (this.on_ready_state_change !== null && typeof this.on_ready_state_change === 'function') { - this.on_ready_state_change(); - } - } - - /** - * @param {object} event - */ - onProgress(event) { - if (this.on_progress !== null && typeof this.on_progress === 'function') { - this.on_progress(); - } - } - - /** - * onError - */ - onError() { - console.log('error'); - - this.complete(); - this.error( - this.http_code, - this.status_text, - ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback(this.status_text); - } - } - - /** - * onTimeout - */ - onTimeout() { - this.complete(); - this.error( - 0, - 'timeout', - ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback('Timeout'); - } - } - - /** - * @return {boolean} - */ - onLoad() { - this.complete(); - - if (this.responseType === 'json' ) { - if (this.xhr.response === null) { - this.error(this.http_code, this.status_text, 'No response'); - return false; - } else if ( typeof this.xhr.response.error !== 'undefined') { - this.error(this.http_code, this.status_text, this.xhr.response.error); - return false; - } - } - - if (this.callback !== null && typeof this.callback === 'function') { - this.callback.call(this.context, this.xhr.response, this.data); - } - } - - /** - * Check if 403 code of WP nonce error - * @return {bool} - */ - isWpNonceError() { - let restErrror = false; - let ajaxErrror = false; - // check rest error - if (this.xhr.readyState == 4) { - restErrror = ( - typeof this.xhr.response === 'object' && this.xhr.response !== null && - this.xhr.response.hasOwnProperty('data') && - this.xhr.response.data.hasOwnProperty('status') && - this.xhr.response.data.status === 403 - ); - ajaxErrror = this.xhr.response === '-1' && this.xhr.status === 403; - } - // todo check AJAX error - return restErrror || ajaxErrror; - } - - /** - * Get the fresh nonce and rerun the initial XHR with params - * @param {[]} initialRequestParams - */ - getFreshNonceAndRerunXHR(initialRequestParams) { - let noncePrev = ''; - - // Check if initialRequestParams['headers']['X-WP-Nonce'] exists. - if ( - initialRequestParams.hasOwnProperty('headers') && - initialRequestParams.headers.hasOwnProperty('X-WP-Nonce') - ) { - noncePrev = initialRequestParams['headers']['X-WP-Nonce']; - } - - // Check if initialRequestParams['data']['_ajax_nonce'] exists. - if ( - initialRequestParams.hasOwnProperty('data') && - initialRequestParams.data.hasOwnProperty('_ajax_nonce') - ) { - noncePrev = initialRequestParams['data']['_ajax_nonce']; - } - - // Nonce is not provided. Exit. - if ( noncePrev === '' ) { - return; - } - - // prepare params for refreshing nonce - let params = {}; - params.method = 'POST'; - params.data = { - 'spbc_remote_call_action': 'get_fresh_wpnonce', - 'plugin_name': 'antispam', - 'nonce_prev': noncePrev, - 'initial_request_params': initialRequestParams, - }; - params.notJson = true; - params.url = ctPublicFunctions._ajax_url; - // this callback will rerun the XHR with initial params - params.callback = function(...args) { - // the refresh result itself - let freshNonceResult = args[0]; - let newRequestParams = false; - // provided initial params - if (args[1] !== undefined && args[1].hasOwnProperty('initial_request_params')) { - newRequestParams = args[1].initial_request_params; - } - if (newRequestParams && freshNonceResult.hasOwnProperty('wpnonce')) { - ctPublicFunctions._fresh_nonce = freshNonceResult.wpnonce; - if (ctPublicFunctions.data__ajax_type === 'rest') { - new ApbctCore().rest(newRequestParams); - } else { - new ApbctCore().ajax(newRequestParams); - } - } - }; - // run the nonce refreshing call - new ApbctXhr(params); - } - - /** - * @param {number} httpCode - * @param {string} statusText - * @param {string} additionalMsg - */ - error(httpCode, statusText, additionalMsg) { - let errorString = ''; - - if ( statusText === 'timeout' ) { - errorString += 'Server response timeout'; - } else if ( httpCode === 200 ) { - if ( statusText === 'parsererror' ) { - errorString += 'Unexpected response from server. See console for details.'; - } else { - errorString += 'Unexpected error. Status: ' + statusText + '.'; - if ( typeof additionalMsg !== 'undefined' ) { - errorString += ' Additional error info: ' + additionalMsg; - } - } - } else if (httpCode === 500) { - errorString += 'Internal server error.'; - } else { - errorString += 'Unexpected response code:' + httpCode; - } - - this.errorOutput( errorString ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback(this.status_text); - } - } - - /** - * @param {string} errorMsg - */ - errorOutput(errorMsg) { - console.log( '%c ctXHR error: %c' + errorMsg, 'color: red;', 'color: grey;' ); - } - - /** - * setHeaders - */ - setHeaders() { - // Set headers if passed - for ( let headerName in this.headers ) { - if ( typeof this.headers[headerName] !== 'undefined' ) { - this.xhr.setRequestHeader(headerName, this.headers[headerName]); - } - } - } - - /** - * @return {string|*} - */ - convertData() { - // GET, HEAD request-type - if ( ~this.methods_to_convert_data_to_URL.indexOf( this.method ) ) { - return this.convertDataToURL(); - - // POST request-type - } else { - return this.convertDataToBody(); - } - } - - /** - * @return {string} - */ - convertDataToURL() { - let paramsAppendix = new URLSearchParams(this.data).toString(); - let paramsPrefix = this.url.match(/^(https?:\/{2})?[a-z0-9.]+\?/) ? '&' : '?'; - this.url += paramsPrefix + paramsAppendix; - - return this.url; - } - - /** - * @return {null} - */ - convertDataToBody() { - this.body = new FormData(); - for (let dataKey in this.data) { - if (Object.hasOwn(this.data, dataKey)) { - this.body.append( - dataKey, - typeof this.data[dataKey] === 'object' ? - JSON.stringify(this.data[dataKey]) : - this.data[dataKey], - ); - } - } - - return this.body; - } - - /** - * Recursive - * - * Recursively decode JSON-encoded properties - * - * @param {object} object - * @return {*} - */ - deleteDoubleJSONEncoding(object) { - if ( typeof object === 'object') { - for (let objectKey in object) { - if (Object.hasOwn(object, objectKey)) { - // Recursion - if ( typeof object[objectKey] === 'object') { - object[objectKey] = this.deleteDoubleJSONEncoding(object[objectKey]); - } - - // Common case (out) - if ( - typeof object[objectKey] === 'string' && - object[objectKey].match(/^[\[{].*?[\]}]$/) !== null // is like JSON - ) { - let parsedValue = JSON.parse(object[objectKey]); - if ( typeof parsedValue === 'object' ) { - object[objectKey] = parsedValue; - } - } - } - } - } - - return object; - } -} -// eslint-disable-next-line require-jsdoc -class ApbctAjax extends ApbctXhr { - // eslint-disable-next-line require-jsdoc - constructor(...args) { - args = args[0]; - args.data._ajax_nonce = selectActualNonce(); - super(args); - } -} -// eslint-disable-next-line require-jsdoc -class ApbctRest extends ApbctXhr { - static default_route = ctPublicFunctions._rest_url + 'cleantalk-antispam/v1/'; - route = ''; - - // eslint-disable-next-line require-jsdoc - constructor(...args) { - args = args[0]; - const nonce = selectActualNonce(); - args.url = ApbctRest.default_route + args.route; - args.headers = { - 'X-WP-Nonce': nonce, - }; - super(args); - } -} - // add hasOwn if (!Object.prototype.hasOwn) { Object.defineProperty(Object.prototype, 'hasOwn', { // eslint-disable-line @@ -2200,28 +1719,17 @@ class ApbctFetchProxyProtection { // eslint-disable-line no-unused-vars * Set init params */ // eslint-disable-next-line no-unused-vars,require-jsdoc -function initParams(gatheringLoaded) { - const ctDate = new Date(); - const headless = navigator.webdriver; +function initLegacyParams(gatheringLoaded) { const screenInfo = ( typeof ApbctGatheringData !== 'undefined' && typeof ApbctGatheringData.prototype.getScreenInfo === 'function' ) ? new ApbctGatheringData().getScreenInfo() : ''; - const initCookies = [ - ['ct_ps_timestamp', Math.floor(new Date().getTime() / 1000)], - ['ct_fkp_timestamp', '0'], - ['ct_pointer_data', '0'], - ['ct_timezone', ctDate.getTimezoneOffset()/60*(-1)], - ['ct_screen_info', screenInfo], - ['apbct_headless', headless], - ]; - apbctLocalStorage.set('ct_ps_timestamp', Math.floor(new Date().getTime() / 1000)); + const initCookies = []; + apbctLocalStorage.set('ct_fkp_timestamp', '0'); apbctLocalStorage.set('ct_pointer_data', '0'); - apbctLocalStorage.set('ct_timezone', ctDate.getTimezoneOffset()/60*(-1)); apbctLocalStorage.set('ct_screen_info', screenInfo); - apbctLocalStorage.set('apbct_headless', headless); if ( ctPublic.data__cookies_type !== 'native' ) { initCookies.push(['apbct_visible_fields', '0']); @@ -2273,164 +1781,16 @@ function initParams(gatheringLoaded) { } } - if (apbctLocalStorage.isSet('ct_checkjs')) { - initCookies.push(['ct_checkjs', apbctLocalStorage.get('ct_checkjs')]); - } else { - initCookies.push(['ct_checkjs', 0]); - } - if (gatheringLoaded) { initCookies.push(['ct_gathering_loaded', gatheringLoaded]); + initCookies.push(['ct_fkp_timestamp', '0']); + initCookies.push(['ct_pointer_data', '0']); + initCookies.push(['ct_screen_info', screenInfo]); } ctSetCookie(initCookies); } -/** - * @param {object|array|string} cookies - * @param {object|array|string} value - * @param {string|number} expires - */ -// eslint-disable-next-line no-unused-vars,require-jsdoc -function ctSetCookie( cookies, value, expires='') { - let listOfCookieNamesToForceAlt = [ - 'ct_sfw_pass_key', - 'ct_sfw_passed', - 'apbct_antibot', - 'apbct_anticrawler_passed', - 'apbct_bot_detector_exist', - 'apbct_antiflood_passed', - 'apbct_email_encoder_passed', - ]; - - let skipAlt = false; - - if ( typeof cookies === 'string') { - skipAlt = cookies === 'ct_pointer_data'; - if ( typeof value === 'string' || typeof value === 'number' ) { - cookies = [[cookies, value, expires]]; - } - } - - // Cookies disabled - if ( ctPublicFunctions.data__cookies_type === 'none' ) { - let forcedAltCookiesSet = []; - cookies.forEach( function(item) { - if (listOfCookieNamesToForceAlt.indexOf(item[0]) !== -1) { - forcedAltCookiesSet.push(item); - } else { - apbctLocalStorage.set(item[0], item[1]); - } - }); - - // if cookies from list found use alt cookies for this selection set - if ( forcedAltCookiesSet.length > 0 ) { - ctSetAlternativeCookie(forcedAltCookiesSet); - } - - // If problem integration forms detected use alt cookies for whole cookies set - if ( ctPublic.force_alt_cookies && !skipAlt) { - // do it just once - ctSetAlternativeCookie(cookies, {forceAltCookies: true}); - } else { - ctNoCookieAttachHiddenFieldsToForms(); - } - - // Using traditional cookies - } else if ( ctPublicFunctions.data__cookies_type === 'native' ) { - // If problem integration forms detected use alt cookies for whole cookies set - if ( ctPublic.force_alt_cookies && !skipAlt) { - // do it just once - ctSetAlternativeCookie(cookies, {forceAltCookies: true}); - } - cookies.forEach( function(item) { - const _expires = typeof item[2] !== 'undefined' ? 'expires=' + item[2] + '; ' : ''; - let ctSecure = location.protocol === 'https:' ? '; secure' : ''; - document.cookie = ctPublicFunctions.cookiePrefix + - item[0] + - '=' + - encodeURIComponent(item[1]) + - '; ' + - _expires + - 'path=/; samesite=lax' + - ctSecure; - }); - - // Using alternative cookies - } else if ( ctPublicFunctions.data__cookies_type === 'alternative' && !skipAlt ) { - ctSetAlternativeCookie(cookies); - } -} - -// eslint-disable-next-line require-jsdoc -function ctSetAlternativeCookie(cookies, params) { - if (typeof (getJavascriptClientData) === 'function' ) { - // reprocess already gained cookies data - if (Array.isArray(cookies)) { - cookies = getJavascriptClientData(cookies); - } - } else if (!+ctPublic.bot_detector_enabled) { - console.log('APBCT ERROR: getJavascriptClientData() is not loaded'); - } - - // if cookies is array, convert it to object - if (Array.isArray(cookies) && cookies[0] && cookies[0][0] === 'apbct_bot_detector_exist') { - cookies = {apbct_bot_detector_exist: cookies[0][1]}; - } - // Only try to parse if cookies is a string (JSON) - if (typeof cookies === 'string') { - try { - cookies = JSON.parse(cookies); - } catch (e) { - console.log('APBCT ERROR: JSON parse error:' + e); - return; - } - } - - const callback = params && params.callback || null; - const onErrorCallback = params && params.onErrorCallback || null; - - if ( params && params.forceAltCookies ) { - cookies.apbct_force_alt_cookies = true; - } - - // Using REST API handler - if ( ctPublicFunctions.data__ajax_type === 'rest' ) { - // fix for url encoded cookie apbct_pixel_url on REST route - if (typeof cookies.apbct_pixel_url === 'string' && - cookies.apbct_pixel_url.indexOf('%3A') !== -1 - ) { - cookies.apbct_pixel_url = decodeURIComponent(cookies.apbct_pixel_url); - } - apbct_public_sendREST( - 'alt_sessions', - { - method: 'POST', - data: {cookies: cookies}, - callback: callback, - onErrorCallback: onErrorCallback, - }, - ); - - // Using AJAX request and handler - } else if ( ctPublicFunctions.data__ajax_type === 'admin_ajax' ) { - apbct_public_sendAJAX( - { - action: 'apbct_alt_session__save__AJAX', - cookies: cookies, - }, - { - notJson: 1, - callback: callback, - onErrorCallback: onErrorCallback, - beforeSend: function(xhr) { - xhr.setRequestHeader('X-Robots-Tag', 'noindex, nofollow'); - }, - }, - ); - } -} - /** * Get cookie by name * @param name @@ -2461,55 +1821,6 @@ function ctDeleteCookie(cookieName) { } } -// eslint-disable-next-line require-jsdoc,camelcase -function apbct_public_sendAJAX(data, params, obj) { - // Default params - let _params = []; - _params['callback'] = params.callback || null; - _params['onErrorCallback'] = params.onErrorCallback || null; - _params['callback_context'] = params.callback_context || null; - _params['callback_params'] = params.callback_params || null; - _params['async'] = params.async || true; - _params['notJson'] = params.notJson || null; - _params['responseType']= params.notJson ? 'text' : 'json'; - _params['timeout'] = params.timeout || 15000; - _params['obj'] = obj || null; - _params['button'] = params.button || null; - _params['spinner'] = params.spinner || null; - _params['progressbar'] = params.progressbar || null; - _params['silent'] = params.silent || null; - _params['no_nonce'] = params.no_nonce || null; - _params['data'] = data; - _params['url'] = ctPublicFunctions._ajax_url; - const nonce = selectActualNonce(); - - if (typeof (data) === 'string') { - if ( ! _params['no_nonce'] ) { - _params['data'] = _params['data'] + '&_ajax_nonce=' + nonce; - } - _params['data'] = _params['data'] + '&no_cache=' + Math.random(); - } else { - if ( ! _params['no_nonce'] ) { - _params['data']._ajax_nonce = nonce; - } - _params['data'].no_cache = Math.random(); - } - - new ApbctCore().ajax(_params); -} - -// eslint-disable-next-line require-jsdoc,camelcase -function apbct_public_sendREST( route, params ) { - let _params = []; - _params['route'] = route; - _params['callback'] = params.callback || null; - _params['onErrorCallback'] = params.onErrorCallback || null; - _params['data'] = params.data || []; - _params['method'] = params.method || 'POST'; - - new ApbctCore().rest(_params); -} - // eslint-disable-next-line require-jsdoc,camelcase,no-unused-vars function apbct_attach_event_handler(elem, event, callback) { if (typeof window.addEventListener === 'function') elem.addEventListener(event, callback); @@ -2553,130 +1864,6 @@ function removeDoubleJsonEncoding(object) { // eslint-disable-line no-unused-var return object; } -/** - * @return {boolean|*} - */ -function ctGetPageForms() { // eslint-disable-line no-unused-vars - let forms = document.forms; - if (forms) { - return forms; - } - return false; -} - -// eslint-disable-next-line camelcase,require-jsdoc,no-unused-vars -function apbct_js_keys__set_input_value(result, data, params, obj) { - if ( document.querySelectorAll('[name^=ct_checkjs]').length > 0 ) { - let elements = document.querySelectorAll('[name^=ct_checkjs]'); - for ( let i = 0; i < elements.length; i++ ) { - elements[i].value = result.js_key; - } - } -} - -let apbctLocalStorage = { - get: function(key, property) { - if ( typeof property === 'undefined' ) { - property = 'value'; - } - const storageValue = localStorage.getItem(key); - if ( storageValue !== null ) { - try { - const json = JSON.parse(storageValue); - if ( json.hasOwnProperty(property) ) { - try { - const parsed = JSON.parse( json[property] ); - if ( parsed !== null && typeof parsed === 'object' ) { - return json[property].toString(); - } - return parsed; - } catch (e) { - return json[property].toString(); - } - } else { - return json; - } - } catch (e) { - return storageValue; - } - } - return false; - }, - set: function(key, value, isJson = true) { - if (isJson) { - let objToSave = {'value': JSON.stringify(value), 'timestamp': Math.floor(new Date().getTime() / 1000)}; - localStorage.setItem(key, JSON.stringify(objToSave)); - } else { - localStorage.setItem(key, value); - } - }, - isAlive: function(key, maxLifetime) { - if ( typeof maxLifetime === 'undefined' ) { - maxLifetime = 86400; - } - const keyTimestamp = this.get(key, 'timestamp'); - return keyTimestamp + maxLifetime > Math.floor(new Date().getTime() / 1000); - }, - isSet: function(key) { - return localStorage.getItem(key) !== null; - }, - delete: function(key) { - localStorage.removeItem(key); - }, - getCleanTalkData: function() { - let data = {}; - for (let i=0; i 0 - ) { - return ctPublicFunctions._fresh_nonce; - } - // select from default rest/ajax nonces - if ( - ctPublicFunctions.data__ajax_type === 'admin_ajax' && - ctPublicFunctions.hasOwnProperty('_ajax_nonce') && - typeof ctPublicFunctions._ajax_nonce === 'string' && - ctPublicFunctions._ajax_nonce.length > 0 - ) { - defaultNonce = ctPublicFunctions._ajax_nonce; - } - if ( - ctPublicFunctions.data__ajax_type === 'rest' && - ctPublicFunctions.hasOwnProperty('_rest_nonce') && - typeof ctPublicFunctions._rest_nonce === 'string' && - ctPublicFunctions._rest_nonce.length > 0 - ) { - defaultNonce = ctPublicFunctions._rest_nonce; - } - - return defaultNonce; -} - /** * Enter point to ApbctCore class * @@ -1528,452 +1493,6 @@ function apbct(params) { .select(params); } -/** - * ApbctXhr - */ -class ApbctXhr { - xhr = new XMLHttpRequest(); - - // Base parameters - method = 'POST'; // HTTP-request type - url = ''; // URL to send the request - async = true; - user = null; // HTTP-authorization username - password = null; // HTTP-authorization password - data = {}; // Data to send - - // Optional params - button = null; // Button that should be disabled when request is performing - spinner = null; // Spinner that should appear when request is in process - progressbar = null; // Progress bar for the current request - context = this; // Context - callback = null; - onErrorCallback = null; - - responseType = 'json'; // Expected data type from server - headers = {}; - timeout = 15000; // Request timeout in milliseconds - - methods_to_convert_data_to_URL = [ - 'GET', - 'HEAD', - ]; - - body = null; - http_code = 0; - status_text = ''; - - // eslint-disable-next-line require-jsdoc - constructor(parameters) { - // Set class properties - for ( let key in parameters ) { - if ( typeof this[key] !== 'undefined' ) { - this[key] = parameters[key]; - } - } - - // Modifying DOM-elements - this.prepare(); - - // Modify URL with data for GET and HEAD requests - if ( Object.keys(this.data).length ) { - this.deleteDoubleJSONEncoding(this.data); - this.convertData(); - } - - if ( ! this.url ) { - console.log('%cXHR%c not URL provided', - 'color: red; font-weight: bold;', 'color: grey; font-weight: normal;'); - return false; - } - - // Configure the request - this.xhr.open(this.method, this.url, this.async, this.user, this.password); - this.setHeaders(); - - this.xhr.responseType = this.responseType; - this.xhr.timeout = this.timeout; - - /* EVENTS */ - // Monitoring status - this.xhr.onreadystatechange = function() { - if (this.isWpNonceError()) { - this.getFreshNonceAndRerunXHR(parameters); - return; - } - this.onReadyStateChange(); - }.bind(this); - - // Run callback - this.xhr.onload = function() { - this.onLoad(); - }.bind(this); - - // On progress - this.xhr.onprogress = function(event) { - this.onProgress(event); - }.bind(this); - - // On error - this.xhr.onerror = function() { - this.onError(); - }.bind(this); - - this.xhr.ontimeout = function() { - this.onTimeout(); - }.bind(this); - - // Send the request - this.xhr.send(this.body); - } - - /** - * prepare - */ - prepare() { - // Disable button - if (this.button) { - this.button.setAttribute('disabled', 'disabled'); - this.button.style.cursor = 'not-allowed'; - } - - // Enable spinner - if (this.spinner) { - this.spinner.style.display = 'inline'; - } - } - - /** - * complete - */ - complete() { - this.http_code = this.xhr.status; - this.status_text = this.xhr.statusText; - - // Disable button - if (this.button) { - this.button.removeAttribute('disabled'); - this.button.style.cursor = 'auto'; - } - - // Enable spinner - if (this.spinner) { - this.spinner.style.display = 'none'; - } - - if ( this.progressbar ) { - this.progressbar.fadeOut('slow'); - } - } - - /** - * onReadyStateChange - */ - onReadyStateChange() { - if (this.on_ready_state_change !== null && typeof this.on_ready_state_change === 'function') { - this.on_ready_state_change(); - } - } - - /** - * @param {object} event - */ - onProgress(event) { - if (this.on_progress !== null && typeof this.on_progress === 'function') { - this.on_progress(); - } - } - - /** - * onError - */ - onError() { - console.log('error'); - - this.complete(); - this.error( - this.http_code, - this.status_text, - ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback(this.status_text); - } - } - - /** - * onTimeout - */ - onTimeout() { - this.complete(); - this.error( - 0, - 'timeout', - ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback('Timeout'); - } - } - - /** - * @return {boolean} - */ - onLoad() { - this.complete(); - - if (this.responseType === 'json' ) { - if (this.xhr.response === null) { - this.error(this.http_code, this.status_text, 'No response'); - return false; - } else if ( typeof this.xhr.response.error !== 'undefined') { - this.error(this.http_code, this.status_text, this.xhr.response.error); - return false; - } - } - - if (this.callback !== null && typeof this.callback === 'function') { - this.callback.call(this.context, this.xhr.response, this.data); - } - } - - /** - * Check if 403 code of WP nonce error - * @return {bool} - */ - isWpNonceError() { - let restErrror = false; - let ajaxErrror = false; - // check rest error - if (this.xhr.readyState == 4) { - restErrror = ( - typeof this.xhr.response === 'object' && this.xhr.response !== null && - this.xhr.response.hasOwnProperty('data') && - this.xhr.response.data.hasOwnProperty('status') && - this.xhr.response.data.status === 403 - ); - ajaxErrror = this.xhr.response === '-1' && this.xhr.status === 403; - } - // todo check AJAX error - return restErrror || ajaxErrror; - } - - /** - * Get the fresh nonce and rerun the initial XHR with params - * @param {[]} initialRequestParams - */ - getFreshNonceAndRerunXHR(initialRequestParams) { - let noncePrev = ''; - - // Check if initialRequestParams['headers']['X-WP-Nonce'] exists. - if ( - initialRequestParams.hasOwnProperty('headers') && - initialRequestParams.headers.hasOwnProperty('X-WP-Nonce') - ) { - noncePrev = initialRequestParams['headers']['X-WP-Nonce']; - } - - // Check if initialRequestParams['data']['_ajax_nonce'] exists. - if ( - initialRequestParams.hasOwnProperty('data') && - initialRequestParams.data.hasOwnProperty('_ajax_nonce') - ) { - noncePrev = initialRequestParams['data']['_ajax_nonce']; - } - - // Nonce is not provided. Exit. - if ( noncePrev === '' ) { - return; - } - - // prepare params for refreshing nonce - let params = {}; - params.method = 'POST'; - params.data = { - 'spbc_remote_call_action': 'get_fresh_wpnonce', - 'plugin_name': 'antispam', - 'nonce_prev': noncePrev, - 'initial_request_params': initialRequestParams, - }; - params.notJson = true; - params.url = ctPublicFunctions._ajax_url; - // this callback will rerun the XHR with initial params - params.callback = function(...args) { - // the refresh result itself - let freshNonceResult = args[0]; - let newRequestParams = false; - // provided initial params - if (args[1] !== undefined && args[1].hasOwnProperty('initial_request_params')) { - newRequestParams = args[1].initial_request_params; - } - if (newRequestParams && freshNonceResult.hasOwnProperty('wpnonce')) { - ctPublicFunctions._fresh_nonce = freshNonceResult.wpnonce; - if (ctPublicFunctions.data__ajax_type === 'rest') { - new ApbctCore().rest(newRequestParams); - } else { - new ApbctCore().ajax(newRequestParams); - } - } - }; - // run the nonce refreshing call - new ApbctXhr(params); - } - - /** - * @param {number} httpCode - * @param {string} statusText - * @param {string} additionalMsg - */ - error(httpCode, statusText, additionalMsg) { - let errorString = ''; - - if ( statusText === 'timeout' ) { - errorString += 'Server response timeout'; - } else if ( httpCode === 200 ) { - if ( statusText === 'parsererror' ) { - errorString += 'Unexpected response from server. See console for details.'; - } else { - errorString += 'Unexpected error. Status: ' + statusText + '.'; - if ( typeof additionalMsg !== 'undefined' ) { - errorString += ' Additional error info: ' + additionalMsg; - } - } - } else if (httpCode === 500) { - errorString += 'Internal server error.'; - } else { - errorString += 'Unexpected response code:' + httpCode; - } - - this.errorOutput( errorString ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback(this.status_text); - } - } - - /** - * @param {string} errorMsg - */ - errorOutput(errorMsg) { - console.log( '%c ctXHR error: %c' + errorMsg, 'color: red;', 'color: grey;' ); - } - - /** - * setHeaders - */ - setHeaders() { - // Set headers if passed - for ( let headerName in this.headers ) { - if ( typeof this.headers[headerName] !== 'undefined' ) { - this.xhr.setRequestHeader(headerName, this.headers[headerName]); - } - } - } - - /** - * @return {string|*} - */ - convertData() { - // GET, HEAD request-type - if ( ~this.methods_to_convert_data_to_URL.indexOf( this.method ) ) { - return this.convertDataToURL(); - - // POST request-type - } else { - return this.convertDataToBody(); - } - } - - /** - * @return {string} - */ - convertDataToURL() { - let paramsAppendix = new URLSearchParams(this.data).toString(); - let paramsPrefix = this.url.match(/^(https?:\/{2})?[a-z0-9.]+\?/) ? '&' : '?'; - this.url += paramsPrefix + paramsAppendix; - - return this.url; - } - - /** - * @return {null} - */ - convertDataToBody() { - this.body = new FormData(); - for (let dataKey in this.data) { - if (Object.hasOwn(this.data, dataKey)) { - this.body.append( - dataKey, - typeof this.data[dataKey] === 'object' ? - JSON.stringify(this.data[dataKey]) : - this.data[dataKey], - ); - } - } - - return this.body; - } - - /** - * Recursive - * - * Recursively decode JSON-encoded properties - * - * @param {object} object - * @return {*} - */ - deleteDoubleJSONEncoding(object) { - if ( typeof object === 'object') { - for (let objectKey in object) { - if (Object.hasOwn(object, objectKey)) { - // Recursion - if ( typeof object[objectKey] === 'object') { - object[objectKey] = this.deleteDoubleJSONEncoding(object[objectKey]); - } - - // Common case (out) - if ( - typeof object[objectKey] === 'string' && - object[objectKey].match(/^[\[{].*?[\]}]$/) !== null // is like JSON - ) { - let parsedValue = JSON.parse(object[objectKey]); - if ( typeof parsedValue === 'object' ) { - object[objectKey] = parsedValue; - } - } - } - } - } - - return object; - } -} -// eslint-disable-next-line require-jsdoc -class ApbctAjax extends ApbctXhr { - // eslint-disable-next-line require-jsdoc - constructor(...args) { - args = args[0]; - args.data._ajax_nonce = selectActualNonce(); - super(args); - } -} -// eslint-disable-next-line require-jsdoc -class ApbctRest extends ApbctXhr { - static default_route = ctPublicFunctions._rest_url + 'cleantalk-antispam/v1/'; - route = ''; - - // eslint-disable-next-line require-jsdoc - constructor(...args) { - args = args[0]; - const nonce = selectActualNonce(); - args.url = ApbctRest.default_route + args.route; - args.headers = { - 'X-WP-Nonce': nonce, - }; - super(args); - } -} - // add hasOwn if (!Object.prototype.hasOwn) { Object.defineProperty(Object.prototype, 'hasOwn', { // eslint-disable-line @@ -2200,28 +1719,17 @@ class ApbctFetchProxyProtection { // eslint-disable-line no-unused-vars * Set init params */ // eslint-disable-next-line no-unused-vars,require-jsdoc -function initParams(gatheringLoaded) { - const ctDate = new Date(); - const headless = navigator.webdriver; +function initLegacyParams(gatheringLoaded) { const screenInfo = ( typeof ApbctGatheringData !== 'undefined' && typeof ApbctGatheringData.prototype.getScreenInfo === 'function' ) ? new ApbctGatheringData().getScreenInfo() : ''; - const initCookies = [ - ['ct_ps_timestamp', Math.floor(new Date().getTime() / 1000)], - ['ct_fkp_timestamp', '0'], - ['ct_pointer_data', '0'], - ['ct_timezone', ctDate.getTimezoneOffset()/60*(-1)], - ['ct_screen_info', screenInfo], - ['apbct_headless', headless], - ]; - apbctLocalStorage.set('ct_ps_timestamp', Math.floor(new Date().getTime() / 1000)); + const initCookies = []; + apbctLocalStorage.set('ct_fkp_timestamp', '0'); apbctLocalStorage.set('ct_pointer_data', '0'); - apbctLocalStorage.set('ct_timezone', ctDate.getTimezoneOffset()/60*(-1)); apbctLocalStorage.set('ct_screen_info', screenInfo); - apbctLocalStorage.set('apbct_headless', headless); if ( ctPublic.data__cookies_type !== 'native' ) { initCookies.push(['apbct_visible_fields', '0']); @@ -2273,164 +1781,16 @@ function initParams(gatheringLoaded) { } } - if (apbctLocalStorage.isSet('ct_checkjs')) { - initCookies.push(['ct_checkjs', apbctLocalStorage.get('ct_checkjs')]); - } else { - initCookies.push(['ct_checkjs', 0]); - } - if (gatheringLoaded) { initCookies.push(['ct_gathering_loaded', gatheringLoaded]); + initCookies.push(['ct_fkp_timestamp', '0']); + initCookies.push(['ct_pointer_data', '0']); + initCookies.push(['ct_screen_info', screenInfo]); } ctSetCookie(initCookies); } -/** - * @param {object|array|string} cookies - * @param {object|array|string} value - * @param {string|number} expires - */ -// eslint-disable-next-line no-unused-vars,require-jsdoc -function ctSetCookie( cookies, value, expires='') { - let listOfCookieNamesToForceAlt = [ - 'ct_sfw_pass_key', - 'ct_sfw_passed', - 'apbct_antibot', - 'apbct_anticrawler_passed', - 'apbct_bot_detector_exist', - 'apbct_antiflood_passed', - 'apbct_email_encoder_passed', - ]; - - let skipAlt = false; - - if ( typeof cookies === 'string') { - skipAlt = cookies === 'ct_pointer_data'; - if ( typeof value === 'string' || typeof value === 'number' ) { - cookies = [[cookies, value, expires]]; - } - } - - // Cookies disabled - if ( ctPublicFunctions.data__cookies_type === 'none' ) { - let forcedAltCookiesSet = []; - cookies.forEach( function(item) { - if (listOfCookieNamesToForceAlt.indexOf(item[0]) !== -1) { - forcedAltCookiesSet.push(item); - } else { - apbctLocalStorage.set(item[0], item[1]); - } - }); - - // if cookies from list found use alt cookies for this selection set - if ( forcedAltCookiesSet.length > 0 ) { - ctSetAlternativeCookie(forcedAltCookiesSet); - } - - // If problem integration forms detected use alt cookies for whole cookies set - if ( ctPublic.force_alt_cookies && !skipAlt) { - // do it just once - ctSetAlternativeCookie(cookies, {forceAltCookies: true}); - } else { - ctNoCookieAttachHiddenFieldsToForms(); - } - - // Using traditional cookies - } else if ( ctPublicFunctions.data__cookies_type === 'native' ) { - // If problem integration forms detected use alt cookies for whole cookies set - if ( ctPublic.force_alt_cookies && !skipAlt) { - // do it just once - ctSetAlternativeCookie(cookies, {forceAltCookies: true}); - } - cookies.forEach( function(item) { - const _expires = typeof item[2] !== 'undefined' ? 'expires=' + item[2] + '; ' : ''; - let ctSecure = location.protocol === 'https:' ? '; secure' : ''; - document.cookie = ctPublicFunctions.cookiePrefix + - item[0] + - '=' + - encodeURIComponent(item[1]) + - '; ' + - _expires + - 'path=/; samesite=lax' + - ctSecure; - }); - - // Using alternative cookies - } else if ( ctPublicFunctions.data__cookies_type === 'alternative' && !skipAlt ) { - ctSetAlternativeCookie(cookies); - } -} - -// eslint-disable-next-line require-jsdoc -function ctSetAlternativeCookie(cookies, params) { - if (typeof (getJavascriptClientData) === 'function' ) { - // reprocess already gained cookies data - if (Array.isArray(cookies)) { - cookies = getJavascriptClientData(cookies); - } - } else if (!+ctPublic.bot_detector_enabled) { - console.log('APBCT ERROR: getJavascriptClientData() is not loaded'); - } - - // if cookies is array, convert it to object - if (Array.isArray(cookies) && cookies[0] && cookies[0][0] === 'apbct_bot_detector_exist') { - cookies = {apbct_bot_detector_exist: cookies[0][1]}; - } - // Only try to parse if cookies is a string (JSON) - if (typeof cookies === 'string') { - try { - cookies = JSON.parse(cookies); - } catch (e) { - console.log('APBCT ERROR: JSON parse error:' + e); - return; - } - } - - const callback = params && params.callback || null; - const onErrorCallback = params && params.onErrorCallback || null; - - if ( params && params.forceAltCookies ) { - cookies.apbct_force_alt_cookies = true; - } - - // Using REST API handler - if ( ctPublicFunctions.data__ajax_type === 'rest' ) { - // fix for url encoded cookie apbct_pixel_url on REST route - if (typeof cookies.apbct_pixel_url === 'string' && - cookies.apbct_pixel_url.indexOf('%3A') !== -1 - ) { - cookies.apbct_pixel_url = decodeURIComponent(cookies.apbct_pixel_url); - } - apbct_public_sendREST( - 'alt_sessions', - { - method: 'POST', - data: {cookies: cookies}, - callback: callback, - onErrorCallback: onErrorCallback, - }, - ); - - // Using AJAX request and handler - } else if ( ctPublicFunctions.data__ajax_type === 'admin_ajax' ) { - apbct_public_sendAJAX( - { - action: 'apbct_alt_session__save__AJAX', - cookies: cookies, - }, - { - notJson: 1, - callback: callback, - onErrorCallback: onErrorCallback, - beforeSend: function(xhr) { - xhr.setRequestHeader('X-Robots-Tag', 'noindex, nofollow'); - }, - }, - ); - } -} - /** * Get cookie by name * @param name @@ -2461,55 +1821,6 @@ function ctDeleteCookie(cookieName) { } } -// eslint-disable-next-line require-jsdoc,camelcase -function apbct_public_sendAJAX(data, params, obj) { - // Default params - let _params = []; - _params['callback'] = params.callback || null; - _params['onErrorCallback'] = params.onErrorCallback || null; - _params['callback_context'] = params.callback_context || null; - _params['callback_params'] = params.callback_params || null; - _params['async'] = params.async || true; - _params['notJson'] = params.notJson || null; - _params['responseType']= params.notJson ? 'text' : 'json'; - _params['timeout'] = params.timeout || 15000; - _params['obj'] = obj || null; - _params['button'] = params.button || null; - _params['spinner'] = params.spinner || null; - _params['progressbar'] = params.progressbar || null; - _params['silent'] = params.silent || null; - _params['no_nonce'] = params.no_nonce || null; - _params['data'] = data; - _params['url'] = ctPublicFunctions._ajax_url; - const nonce = selectActualNonce(); - - if (typeof (data) === 'string') { - if ( ! _params['no_nonce'] ) { - _params['data'] = _params['data'] + '&_ajax_nonce=' + nonce; - } - _params['data'] = _params['data'] + '&no_cache=' + Math.random(); - } else { - if ( ! _params['no_nonce'] ) { - _params['data']._ajax_nonce = nonce; - } - _params['data'].no_cache = Math.random(); - } - - new ApbctCore().ajax(_params); -} - -// eslint-disable-next-line require-jsdoc,camelcase -function apbct_public_sendREST( route, params ) { - let _params = []; - _params['route'] = route; - _params['callback'] = params.callback || null; - _params['onErrorCallback'] = params.onErrorCallback || null; - _params['data'] = params.data || []; - _params['method'] = params.method || 'POST'; - - new ApbctCore().rest(_params); -} - // eslint-disable-next-line require-jsdoc,camelcase,no-unused-vars function apbct_attach_event_handler(elem, event, callback) { if (typeof window.addEventListener === 'function') elem.addEventListener(event, callback); @@ -2553,130 +1864,6 @@ function removeDoubleJsonEncoding(object) { // eslint-disable-line no-unused-var return object; } -/** - * @return {boolean|*} - */ -function ctGetPageForms() { // eslint-disable-line no-unused-vars - let forms = document.forms; - if (forms) { - return forms; - } - return false; -} - -// eslint-disable-next-line camelcase,require-jsdoc,no-unused-vars -function apbct_js_keys__set_input_value(result, data, params, obj) { - if ( document.querySelectorAll('[name^=ct_checkjs]').length > 0 ) { - let elements = document.querySelectorAll('[name^=ct_checkjs]'); - for ( let i = 0; i < elements.length; i++ ) { - elements[i].value = result.js_key; - } - } -} - -let apbctLocalStorage = { - get: function(key, property) { - if ( typeof property === 'undefined' ) { - property = 'value'; - } - const storageValue = localStorage.getItem(key); - if ( storageValue !== null ) { - try { - const json = JSON.parse(storageValue); - if ( json.hasOwnProperty(property) ) { - try { - const parsed = JSON.parse( json[property] ); - if ( parsed !== null && typeof parsed === 'object' ) { - return json[property].toString(); - } - return parsed; - } catch (e) { - return json[property].toString(); - } - } else { - return json; - } - } catch (e) { - return storageValue; - } - } - return false; - }, - set: function(key, value, isJson = true) { - if (isJson) { - let objToSave = {'value': JSON.stringify(value), 'timestamp': Math.floor(new Date().getTime() / 1000)}; - localStorage.setItem(key, JSON.stringify(objToSave)); - } else { - localStorage.setItem(key, value); - } - }, - isAlive: function(key, maxLifetime) { - if ( typeof maxLifetime === 'undefined' ) { - maxLifetime = 86400; - } - const keyTimestamp = this.get(key, 'timestamp'); - return keyTimestamp + maxLifetime > Math.floor(new Date().getTime() / 1000); - }, - isSet: function(key) { - return localStorage.getItem(key) !== null; - }, - delete: function(key) { - localStorage.removeItem(key); - }, - getCleanTalkData: function() { - let data = {}; - for (let i=0; i 0 - ) { - return ctPublicFunctions._fresh_nonce; - } - // select from default rest/ajax nonces - if ( - ctPublicFunctions.data__ajax_type === 'admin_ajax' && - ctPublicFunctions.hasOwnProperty('_ajax_nonce') && - typeof ctPublicFunctions._ajax_nonce === 'string' && - ctPublicFunctions._ajax_nonce.length > 0 - ) { - defaultNonce = ctPublicFunctions._ajax_nonce; - } - if ( - ctPublicFunctions.data__ajax_type === 'rest' && - ctPublicFunctions.hasOwnProperty('_rest_nonce') && - typeof ctPublicFunctions._rest_nonce === 'string' && - ctPublicFunctions._rest_nonce.length > 0 - ) { - defaultNonce = ctPublicFunctions._rest_nonce; - } - - return defaultNonce; -} - /** * Enter point to ApbctCore class * @@ -1528,452 +1493,6 @@ function apbct(params) { .select(params); } -/** - * ApbctXhr - */ -class ApbctXhr { - xhr = new XMLHttpRequest(); - - // Base parameters - method = 'POST'; // HTTP-request type - url = ''; // URL to send the request - async = true; - user = null; // HTTP-authorization username - password = null; // HTTP-authorization password - data = {}; // Data to send - - // Optional params - button = null; // Button that should be disabled when request is performing - spinner = null; // Spinner that should appear when request is in process - progressbar = null; // Progress bar for the current request - context = this; // Context - callback = null; - onErrorCallback = null; - - responseType = 'json'; // Expected data type from server - headers = {}; - timeout = 15000; // Request timeout in milliseconds - - methods_to_convert_data_to_URL = [ - 'GET', - 'HEAD', - ]; - - body = null; - http_code = 0; - status_text = ''; - - // eslint-disable-next-line require-jsdoc - constructor(parameters) { - // Set class properties - for ( let key in parameters ) { - if ( typeof this[key] !== 'undefined' ) { - this[key] = parameters[key]; - } - } - - // Modifying DOM-elements - this.prepare(); - - // Modify URL with data for GET and HEAD requests - if ( Object.keys(this.data).length ) { - this.deleteDoubleJSONEncoding(this.data); - this.convertData(); - } - - if ( ! this.url ) { - console.log('%cXHR%c not URL provided', - 'color: red; font-weight: bold;', 'color: grey; font-weight: normal;'); - return false; - } - - // Configure the request - this.xhr.open(this.method, this.url, this.async, this.user, this.password); - this.setHeaders(); - - this.xhr.responseType = this.responseType; - this.xhr.timeout = this.timeout; - - /* EVENTS */ - // Monitoring status - this.xhr.onreadystatechange = function() { - if (this.isWpNonceError()) { - this.getFreshNonceAndRerunXHR(parameters); - return; - } - this.onReadyStateChange(); - }.bind(this); - - // Run callback - this.xhr.onload = function() { - this.onLoad(); - }.bind(this); - - // On progress - this.xhr.onprogress = function(event) { - this.onProgress(event); - }.bind(this); - - // On error - this.xhr.onerror = function() { - this.onError(); - }.bind(this); - - this.xhr.ontimeout = function() { - this.onTimeout(); - }.bind(this); - - // Send the request - this.xhr.send(this.body); - } - - /** - * prepare - */ - prepare() { - // Disable button - if (this.button) { - this.button.setAttribute('disabled', 'disabled'); - this.button.style.cursor = 'not-allowed'; - } - - // Enable spinner - if (this.spinner) { - this.spinner.style.display = 'inline'; - } - } - - /** - * complete - */ - complete() { - this.http_code = this.xhr.status; - this.status_text = this.xhr.statusText; - - // Disable button - if (this.button) { - this.button.removeAttribute('disabled'); - this.button.style.cursor = 'auto'; - } - - // Enable spinner - if (this.spinner) { - this.spinner.style.display = 'none'; - } - - if ( this.progressbar ) { - this.progressbar.fadeOut('slow'); - } - } - - /** - * onReadyStateChange - */ - onReadyStateChange() { - if (this.on_ready_state_change !== null && typeof this.on_ready_state_change === 'function') { - this.on_ready_state_change(); - } - } - - /** - * @param {object} event - */ - onProgress(event) { - if (this.on_progress !== null && typeof this.on_progress === 'function') { - this.on_progress(); - } - } - - /** - * onError - */ - onError() { - console.log('error'); - - this.complete(); - this.error( - this.http_code, - this.status_text, - ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback(this.status_text); - } - } - - /** - * onTimeout - */ - onTimeout() { - this.complete(); - this.error( - 0, - 'timeout', - ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback('Timeout'); - } - } - - /** - * @return {boolean} - */ - onLoad() { - this.complete(); - - if (this.responseType === 'json' ) { - if (this.xhr.response === null) { - this.error(this.http_code, this.status_text, 'No response'); - return false; - } else if ( typeof this.xhr.response.error !== 'undefined') { - this.error(this.http_code, this.status_text, this.xhr.response.error); - return false; - } - } - - if (this.callback !== null && typeof this.callback === 'function') { - this.callback.call(this.context, this.xhr.response, this.data); - } - } - - /** - * Check if 403 code of WP nonce error - * @return {bool} - */ - isWpNonceError() { - let restErrror = false; - let ajaxErrror = false; - // check rest error - if (this.xhr.readyState == 4) { - restErrror = ( - typeof this.xhr.response === 'object' && this.xhr.response !== null && - this.xhr.response.hasOwnProperty('data') && - this.xhr.response.data.hasOwnProperty('status') && - this.xhr.response.data.status === 403 - ); - ajaxErrror = this.xhr.response === '-1' && this.xhr.status === 403; - } - // todo check AJAX error - return restErrror || ajaxErrror; - } - - /** - * Get the fresh nonce and rerun the initial XHR with params - * @param {[]} initialRequestParams - */ - getFreshNonceAndRerunXHR(initialRequestParams) { - let noncePrev = ''; - - // Check if initialRequestParams['headers']['X-WP-Nonce'] exists. - if ( - initialRequestParams.hasOwnProperty('headers') && - initialRequestParams.headers.hasOwnProperty('X-WP-Nonce') - ) { - noncePrev = initialRequestParams['headers']['X-WP-Nonce']; - } - - // Check if initialRequestParams['data']['_ajax_nonce'] exists. - if ( - initialRequestParams.hasOwnProperty('data') && - initialRequestParams.data.hasOwnProperty('_ajax_nonce') - ) { - noncePrev = initialRequestParams['data']['_ajax_nonce']; - } - - // Nonce is not provided. Exit. - if ( noncePrev === '' ) { - return; - } - - // prepare params for refreshing nonce - let params = {}; - params.method = 'POST'; - params.data = { - 'spbc_remote_call_action': 'get_fresh_wpnonce', - 'plugin_name': 'antispam', - 'nonce_prev': noncePrev, - 'initial_request_params': initialRequestParams, - }; - params.notJson = true; - params.url = ctPublicFunctions._ajax_url; - // this callback will rerun the XHR with initial params - params.callback = function(...args) { - // the refresh result itself - let freshNonceResult = args[0]; - let newRequestParams = false; - // provided initial params - if (args[1] !== undefined && args[1].hasOwnProperty('initial_request_params')) { - newRequestParams = args[1].initial_request_params; - } - if (newRequestParams && freshNonceResult.hasOwnProperty('wpnonce')) { - ctPublicFunctions._fresh_nonce = freshNonceResult.wpnonce; - if (ctPublicFunctions.data__ajax_type === 'rest') { - new ApbctCore().rest(newRequestParams); - } else { - new ApbctCore().ajax(newRequestParams); - } - } - }; - // run the nonce refreshing call - new ApbctXhr(params); - } - - /** - * @param {number} httpCode - * @param {string} statusText - * @param {string} additionalMsg - */ - error(httpCode, statusText, additionalMsg) { - let errorString = ''; - - if ( statusText === 'timeout' ) { - errorString += 'Server response timeout'; - } else if ( httpCode === 200 ) { - if ( statusText === 'parsererror' ) { - errorString += 'Unexpected response from server. See console for details.'; - } else { - errorString += 'Unexpected error. Status: ' + statusText + '.'; - if ( typeof additionalMsg !== 'undefined' ) { - errorString += ' Additional error info: ' + additionalMsg; - } - } - } else if (httpCode === 500) { - errorString += 'Internal server error.'; - } else { - errorString += 'Unexpected response code:' + httpCode; - } - - this.errorOutput( errorString ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback(this.status_text); - } - } - - /** - * @param {string} errorMsg - */ - errorOutput(errorMsg) { - console.log( '%c ctXHR error: %c' + errorMsg, 'color: red;', 'color: grey;' ); - } - - /** - * setHeaders - */ - setHeaders() { - // Set headers if passed - for ( let headerName in this.headers ) { - if ( typeof this.headers[headerName] !== 'undefined' ) { - this.xhr.setRequestHeader(headerName, this.headers[headerName]); - } - } - } - - /** - * @return {string|*} - */ - convertData() { - // GET, HEAD request-type - if ( ~this.methods_to_convert_data_to_URL.indexOf( this.method ) ) { - return this.convertDataToURL(); - - // POST request-type - } else { - return this.convertDataToBody(); - } - } - - /** - * @return {string} - */ - convertDataToURL() { - let paramsAppendix = new URLSearchParams(this.data).toString(); - let paramsPrefix = this.url.match(/^(https?:\/{2})?[a-z0-9.]+\?/) ? '&' : '?'; - this.url += paramsPrefix + paramsAppendix; - - return this.url; - } - - /** - * @return {null} - */ - convertDataToBody() { - this.body = new FormData(); - for (let dataKey in this.data) { - if (Object.hasOwn(this.data, dataKey)) { - this.body.append( - dataKey, - typeof this.data[dataKey] === 'object' ? - JSON.stringify(this.data[dataKey]) : - this.data[dataKey], - ); - } - } - - return this.body; - } - - /** - * Recursive - * - * Recursively decode JSON-encoded properties - * - * @param {object} object - * @return {*} - */ - deleteDoubleJSONEncoding(object) { - if ( typeof object === 'object') { - for (let objectKey in object) { - if (Object.hasOwn(object, objectKey)) { - // Recursion - if ( typeof object[objectKey] === 'object') { - object[objectKey] = this.deleteDoubleJSONEncoding(object[objectKey]); - } - - // Common case (out) - if ( - typeof object[objectKey] === 'string' && - object[objectKey].match(/^[\[{].*?[\]}]$/) !== null // is like JSON - ) { - let parsedValue = JSON.parse(object[objectKey]); - if ( typeof parsedValue === 'object' ) { - object[objectKey] = parsedValue; - } - } - } - } - } - - return object; - } -} -// eslint-disable-next-line require-jsdoc -class ApbctAjax extends ApbctXhr { - // eslint-disable-next-line require-jsdoc - constructor(...args) { - args = args[0]; - args.data._ajax_nonce = selectActualNonce(); - super(args); - } -} -// eslint-disable-next-line require-jsdoc -class ApbctRest extends ApbctXhr { - static default_route = ctPublicFunctions._rest_url + 'cleantalk-antispam/v1/'; - route = ''; - - // eslint-disable-next-line require-jsdoc - constructor(...args) { - args = args[0]; - const nonce = selectActualNonce(); - args.url = ApbctRest.default_route + args.route; - args.headers = { - 'X-WP-Nonce': nonce, - }; - super(args); - } -} - // add hasOwn if (!Object.prototype.hasOwn) { Object.defineProperty(Object.prototype, 'hasOwn', { // eslint-disable-line @@ -2200,28 +1719,17 @@ class ApbctFetchProxyProtection { // eslint-disable-line no-unused-vars * Set init params */ // eslint-disable-next-line no-unused-vars,require-jsdoc -function initParams(gatheringLoaded) { - const ctDate = new Date(); - const headless = navigator.webdriver; +function initLegacyParams(gatheringLoaded) { const screenInfo = ( typeof ApbctGatheringData !== 'undefined' && typeof ApbctGatheringData.prototype.getScreenInfo === 'function' ) ? new ApbctGatheringData().getScreenInfo() : ''; - const initCookies = [ - ['ct_ps_timestamp', Math.floor(new Date().getTime() / 1000)], - ['ct_fkp_timestamp', '0'], - ['ct_pointer_data', '0'], - ['ct_timezone', ctDate.getTimezoneOffset()/60*(-1)], - ['ct_screen_info', screenInfo], - ['apbct_headless', headless], - ]; - apbctLocalStorage.set('ct_ps_timestamp', Math.floor(new Date().getTime() / 1000)); + const initCookies = []; + apbctLocalStorage.set('ct_fkp_timestamp', '0'); apbctLocalStorage.set('ct_pointer_data', '0'); - apbctLocalStorage.set('ct_timezone', ctDate.getTimezoneOffset()/60*(-1)); apbctLocalStorage.set('ct_screen_info', screenInfo); - apbctLocalStorage.set('apbct_headless', headless); if ( ctPublic.data__cookies_type !== 'native' ) { initCookies.push(['apbct_visible_fields', '0']); @@ -2273,164 +1781,16 @@ function initParams(gatheringLoaded) { } } - if (apbctLocalStorage.isSet('ct_checkjs')) { - initCookies.push(['ct_checkjs', apbctLocalStorage.get('ct_checkjs')]); - } else { - initCookies.push(['ct_checkjs', 0]); - } - if (gatheringLoaded) { initCookies.push(['ct_gathering_loaded', gatheringLoaded]); + initCookies.push(['ct_fkp_timestamp', '0']); + initCookies.push(['ct_pointer_data', '0']); + initCookies.push(['ct_screen_info', screenInfo]); } ctSetCookie(initCookies); } -/** - * @param {object|array|string} cookies - * @param {object|array|string} value - * @param {string|number} expires - */ -// eslint-disable-next-line no-unused-vars,require-jsdoc -function ctSetCookie( cookies, value, expires='') { - let listOfCookieNamesToForceAlt = [ - 'ct_sfw_pass_key', - 'ct_sfw_passed', - 'apbct_antibot', - 'apbct_anticrawler_passed', - 'apbct_bot_detector_exist', - 'apbct_antiflood_passed', - 'apbct_email_encoder_passed', - ]; - - let skipAlt = false; - - if ( typeof cookies === 'string') { - skipAlt = cookies === 'ct_pointer_data'; - if ( typeof value === 'string' || typeof value === 'number' ) { - cookies = [[cookies, value, expires]]; - } - } - - // Cookies disabled - if ( ctPublicFunctions.data__cookies_type === 'none' ) { - let forcedAltCookiesSet = []; - cookies.forEach( function(item) { - if (listOfCookieNamesToForceAlt.indexOf(item[0]) !== -1) { - forcedAltCookiesSet.push(item); - } else { - apbctLocalStorage.set(item[0], item[1]); - } - }); - - // if cookies from list found use alt cookies for this selection set - if ( forcedAltCookiesSet.length > 0 ) { - ctSetAlternativeCookie(forcedAltCookiesSet); - } - - // If problem integration forms detected use alt cookies for whole cookies set - if ( ctPublic.force_alt_cookies && !skipAlt) { - // do it just once - ctSetAlternativeCookie(cookies, {forceAltCookies: true}); - } else { - ctNoCookieAttachHiddenFieldsToForms(); - } - - // Using traditional cookies - } else if ( ctPublicFunctions.data__cookies_type === 'native' ) { - // If problem integration forms detected use alt cookies for whole cookies set - if ( ctPublic.force_alt_cookies && !skipAlt) { - // do it just once - ctSetAlternativeCookie(cookies, {forceAltCookies: true}); - } - cookies.forEach( function(item) { - const _expires = typeof item[2] !== 'undefined' ? 'expires=' + item[2] + '; ' : ''; - let ctSecure = location.protocol === 'https:' ? '; secure' : ''; - document.cookie = ctPublicFunctions.cookiePrefix + - item[0] + - '=' + - encodeURIComponent(item[1]) + - '; ' + - _expires + - 'path=/; samesite=lax' + - ctSecure; - }); - - // Using alternative cookies - } else if ( ctPublicFunctions.data__cookies_type === 'alternative' && !skipAlt ) { - ctSetAlternativeCookie(cookies); - } -} - -// eslint-disable-next-line require-jsdoc -function ctSetAlternativeCookie(cookies, params) { - if (typeof (getJavascriptClientData) === 'function' ) { - // reprocess already gained cookies data - if (Array.isArray(cookies)) { - cookies = getJavascriptClientData(cookies); - } - } else if (!+ctPublic.bot_detector_enabled) { - console.log('APBCT ERROR: getJavascriptClientData() is not loaded'); - } - - // if cookies is array, convert it to object - if (Array.isArray(cookies) && cookies[0] && cookies[0][0] === 'apbct_bot_detector_exist') { - cookies = {apbct_bot_detector_exist: cookies[0][1]}; - } - // Only try to parse if cookies is a string (JSON) - if (typeof cookies === 'string') { - try { - cookies = JSON.parse(cookies); - } catch (e) { - console.log('APBCT ERROR: JSON parse error:' + e); - return; - } - } - - const callback = params && params.callback || null; - const onErrorCallback = params && params.onErrorCallback || null; - - if ( params && params.forceAltCookies ) { - cookies.apbct_force_alt_cookies = true; - } - - // Using REST API handler - if ( ctPublicFunctions.data__ajax_type === 'rest' ) { - // fix for url encoded cookie apbct_pixel_url on REST route - if (typeof cookies.apbct_pixel_url === 'string' && - cookies.apbct_pixel_url.indexOf('%3A') !== -1 - ) { - cookies.apbct_pixel_url = decodeURIComponent(cookies.apbct_pixel_url); - } - apbct_public_sendREST( - 'alt_sessions', - { - method: 'POST', - data: {cookies: cookies}, - callback: callback, - onErrorCallback: onErrorCallback, - }, - ); - - // Using AJAX request and handler - } else if ( ctPublicFunctions.data__ajax_type === 'admin_ajax' ) { - apbct_public_sendAJAX( - { - action: 'apbct_alt_session__save__AJAX', - cookies: cookies, - }, - { - notJson: 1, - callback: callback, - onErrorCallback: onErrorCallback, - beforeSend: function(xhr) { - xhr.setRequestHeader('X-Robots-Tag', 'noindex, nofollow'); - }, - }, - ); - } -} - /** * Get cookie by name * @param name @@ -2461,55 +1821,6 @@ function ctDeleteCookie(cookieName) { } } -// eslint-disable-next-line require-jsdoc,camelcase -function apbct_public_sendAJAX(data, params, obj) { - // Default params - let _params = []; - _params['callback'] = params.callback || null; - _params['onErrorCallback'] = params.onErrorCallback || null; - _params['callback_context'] = params.callback_context || null; - _params['callback_params'] = params.callback_params || null; - _params['async'] = params.async || true; - _params['notJson'] = params.notJson || null; - _params['responseType']= params.notJson ? 'text' : 'json'; - _params['timeout'] = params.timeout || 15000; - _params['obj'] = obj || null; - _params['button'] = params.button || null; - _params['spinner'] = params.spinner || null; - _params['progressbar'] = params.progressbar || null; - _params['silent'] = params.silent || null; - _params['no_nonce'] = params.no_nonce || null; - _params['data'] = data; - _params['url'] = ctPublicFunctions._ajax_url; - const nonce = selectActualNonce(); - - if (typeof (data) === 'string') { - if ( ! _params['no_nonce'] ) { - _params['data'] = _params['data'] + '&_ajax_nonce=' + nonce; - } - _params['data'] = _params['data'] + '&no_cache=' + Math.random(); - } else { - if ( ! _params['no_nonce'] ) { - _params['data']._ajax_nonce = nonce; - } - _params['data'].no_cache = Math.random(); - } - - new ApbctCore().ajax(_params); -} - -// eslint-disable-next-line require-jsdoc,camelcase -function apbct_public_sendREST( route, params ) { - let _params = []; - _params['route'] = route; - _params['callback'] = params.callback || null; - _params['onErrorCallback'] = params.onErrorCallback || null; - _params['data'] = params.data || []; - _params['method'] = params.method || 'POST'; - - new ApbctCore().rest(_params); -} - // eslint-disable-next-line require-jsdoc,camelcase,no-unused-vars function apbct_attach_event_handler(elem, event, callback) { if (typeof window.addEventListener === 'function') elem.addEventListener(event, callback); @@ -2553,130 +1864,6 @@ function removeDoubleJsonEncoding(object) { // eslint-disable-line no-unused-var return object; } -/** - * @return {boolean|*} - */ -function ctGetPageForms() { // eslint-disable-line no-unused-vars - let forms = document.forms; - if (forms) { - return forms; - } - return false; -} - -// eslint-disable-next-line camelcase,require-jsdoc,no-unused-vars -function apbct_js_keys__set_input_value(result, data, params, obj) { - if ( document.querySelectorAll('[name^=ct_checkjs]').length > 0 ) { - let elements = document.querySelectorAll('[name^=ct_checkjs]'); - for ( let i = 0; i < elements.length; i++ ) { - elements[i].value = result.js_key; - } - } -} - -let apbctLocalStorage = { - get: function(key, property) { - if ( typeof property === 'undefined' ) { - property = 'value'; - } - const storageValue = localStorage.getItem(key); - if ( storageValue !== null ) { - try { - const json = JSON.parse(storageValue); - if ( json.hasOwnProperty(property) ) { - try { - const parsed = JSON.parse( json[property] ); - if ( parsed !== null && typeof parsed === 'object' ) { - return json[property].toString(); - } - return parsed; - } catch (e) { - return json[property].toString(); - } - } else { - return json; - } - } catch (e) { - return storageValue; - } - } - return false; - }, - set: function(key, value, isJson = true) { - if (isJson) { - let objToSave = {'value': JSON.stringify(value), 'timestamp': Math.floor(new Date().getTime() / 1000)}; - localStorage.setItem(key, JSON.stringify(objToSave)); - } else { - localStorage.setItem(key, value); - } - }, - isAlive: function(key, maxLifetime) { - if ( typeof maxLifetime === 'undefined' ) { - maxLifetime = 86400; - } - const keyTimestamp = this.get(key, 'timestamp'); - return keyTimestamp + maxLifetime > Math.floor(new Date().getTime() / 1000); - }, - isSet: function(key) { - return localStorage.getItem(key) !== null; - }, - delete: function(key) { - localStorage.removeItem(key); - }, - getCleanTalkData: function() { - let data = {}; - for (let i=0; i 0) { + if (forms && forms.length > 0) { for (let i = 0; i < forms.length; i++) { // handle only inputs and textareas const handledFormFields = forms[i].querySelectorAll('input,textarea'); @@ -8145,29 +7259,7 @@ class ApbctBrowserState { } } -/** - * Get the browser state as a key/value pair to attach it to an intercepted request. - * @return {{key: string, value: string}|false} False if there is nothing to attach. - */ -function apbctGetBrowserStatePair() { // eslint-disable-line no-unused-vars - try { - ApbctBrowserState.detectScripts(); - let state = ApbctBrowserState.asDTO(); - if ( ApbctBrowserState.botdLogicLoaded ) { - const transportEnabled = localStorage.getItem(ApbctBrowserState.TRANSPORT_ENABLED_SIGN_KEY) === '1'; - if (transportEnabled) { - state.frontend_data_log = ApbctBrowserState.getFrontendDataLog(); - } else { - state.transport_enabled = 0; - } - } else { - state.frontend_data_log = ApbctBrowserState.getFrontendDataLog(); - } - return {key: ApbctBrowserState.STATE_KEY, value: JSON.stringify(state)}; - } catch (e) { - return false; - } -} + let ctCheckedEmails = {}; let ctCheckedEmailsExist = {}; diff --git a/js/prebuild/apbct-public-bundle_full-protection.js b/js/prebuild/apbct-public-bundle_full-protection.js index 5782e67fc..08596aefc 100644 --- a/js/prebuild/apbct-public-bundle_full-protection.js +++ b/js/prebuild/apbct-public-bundle_full-protection.js @@ -1481,41 +1481,6 @@ class ApbctCore { } } -/** - * Select actual WP nonce depending on the ajax type and the fresh nonce provided. - * @return {string} url - */ -function selectActualNonce() { - let defaultNonce = ''; - // return fresh nonce immediately if persists - if ( - ctPublicFunctions.hasOwnProperty('_fresh_nonce') && - typeof ctPublicFunctions._fresh_nonce === 'string' && - ctPublicFunctions._fresh_nonce.length > 0 - ) { - return ctPublicFunctions._fresh_nonce; - } - // select from default rest/ajax nonces - if ( - ctPublicFunctions.data__ajax_type === 'admin_ajax' && - ctPublicFunctions.hasOwnProperty('_ajax_nonce') && - typeof ctPublicFunctions._ajax_nonce === 'string' && - ctPublicFunctions._ajax_nonce.length > 0 - ) { - defaultNonce = ctPublicFunctions._ajax_nonce; - } - if ( - ctPublicFunctions.data__ajax_type === 'rest' && - ctPublicFunctions.hasOwnProperty('_rest_nonce') && - typeof ctPublicFunctions._rest_nonce === 'string' && - ctPublicFunctions._rest_nonce.length > 0 - ) { - defaultNonce = ctPublicFunctions._rest_nonce; - } - - return defaultNonce; -} - /** * Enter point to ApbctCore class * @@ -1528,452 +1493,6 @@ function apbct(params) { .select(params); } -/** - * ApbctXhr - */ -class ApbctXhr { - xhr = new XMLHttpRequest(); - - // Base parameters - method = 'POST'; // HTTP-request type - url = ''; // URL to send the request - async = true; - user = null; // HTTP-authorization username - password = null; // HTTP-authorization password - data = {}; // Data to send - - // Optional params - button = null; // Button that should be disabled when request is performing - spinner = null; // Spinner that should appear when request is in process - progressbar = null; // Progress bar for the current request - context = this; // Context - callback = null; - onErrorCallback = null; - - responseType = 'json'; // Expected data type from server - headers = {}; - timeout = 15000; // Request timeout in milliseconds - - methods_to_convert_data_to_URL = [ - 'GET', - 'HEAD', - ]; - - body = null; - http_code = 0; - status_text = ''; - - // eslint-disable-next-line require-jsdoc - constructor(parameters) { - // Set class properties - for ( let key in parameters ) { - if ( typeof this[key] !== 'undefined' ) { - this[key] = parameters[key]; - } - } - - // Modifying DOM-elements - this.prepare(); - - // Modify URL with data for GET and HEAD requests - if ( Object.keys(this.data).length ) { - this.deleteDoubleJSONEncoding(this.data); - this.convertData(); - } - - if ( ! this.url ) { - console.log('%cXHR%c not URL provided', - 'color: red; font-weight: bold;', 'color: grey; font-weight: normal;'); - return false; - } - - // Configure the request - this.xhr.open(this.method, this.url, this.async, this.user, this.password); - this.setHeaders(); - - this.xhr.responseType = this.responseType; - this.xhr.timeout = this.timeout; - - /* EVENTS */ - // Monitoring status - this.xhr.onreadystatechange = function() { - if (this.isWpNonceError()) { - this.getFreshNonceAndRerunXHR(parameters); - return; - } - this.onReadyStateChange(); - }.bind(this); - - // Run callback - this.xhr.onload = function() { - this.onLoad(); - }.bind(this); - - // On progress - this.xhr.onprogress = function(event) { - this.onProgress(event); - }.bind(this); - - // On error - this.xhr.onerror = function() { - this.onError(); - }.bind(this); - - this.xhr.ontimeout = function() { - this.onTimeout(); - }.bind(this); - - // Send the request - this.xhr.send(this.body); - } - - /** - * prepare - */ - prepare() { - // Disable button - if (this.button) { - this.button.setAttribute('disabled', 'disabled'); - this.button.style.cursor = 'not-allowed'; - } - - // Enable spinner - if (this.spinner) { - this.spinner.style.display = 'inline'; - } - } - - /** - * complete - */ - complete() { - this.http_code = this.xhr.status; - this.status_text = this.xhr.statusText; - - // Disable button - if (this.button) { - this.button.removeAttribute('disabled'); - this.button.style.cursor = 'auto'; - } - - // Enable spinner - if (this.spinner) { - this.spinner.style.display = 'none'; - } - - if ( this.progressbar ) { - this.progressbar.fadeOut('slow'); - } - } - - /** - * onReadyStateChange - */ - onReadyStateChange() { - if (this.on_ready_state_change !== null && typeof this.on_ready_state_change === 'function') { - this.on_ready_state_change(); - } - } - - /** - * @param {object} event - */ - onProgress(event) { - if (this.on_progress !== null && typeof this.on_progress === 'function') { - this.on_progress(); - } - } - - /** - * onError - */ - onError() { - console.log('error'); - - this.complete(); - this.error( - this.http_code, - this.status_text, - ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback(this.status_text); - } - } - - /** - * onTimeout - */ - onTimeout() { - this.complete(); - this.error( - 0, - 'timeout', - ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback('Timeout'); - } - } - - /** - * @return {boolean} - */ - onLoad() { - this.complete(); - - if (this.responseType === 'json' ) { - if (this.xhr.response === null) { - this.error(this.http_code, this.status_text, 'No response'); - return false; - } else if ( typeof this.xhr.response.error !== 'undefined') { - this.error(this.http_code, this.status_text, this.xhr.response.error); - return false; - } - } - - if (this.callback !== null && typeof this.callback === 'function') { - this.callback.call(this.context, this.xhr.response, this.data); - } - } - - /** - * Check if 403 code of WP nonce error - * @return {bool} - */ - isWpNonceError() { - let restErrror = false; - let ajaxErrror = false; - // check rest error - if (this.xhr.readyState == 4) { - restErrror = ( - typeof this.xhr.response === 'object' && this.xhr.response !== null && - this.xhr.response.hasOwnProperty('data') && - this.xhr.response.data.hasOwnProperty('status') && - this.xhr.response.data.status === 403 - ); - ajaxErrror = this.xhr.response === '-1' && this.xhr.status === 403; - } - // todo check AJAX error - return restErrror || ajaxErrror; - } - - /** - * Get the fresh nonce and rerun the initial XHR with params - * @param {[]} initialRequestParams - */ - getFreshNonceAndRerunXHR(initialRequestParams) { - let noncePrev = ''; - - // Check if initialRequestParams['headers']['X-WP-Nonce'] exists. - if ( - initialRequestParams.hasOwnProperty('headers') && - initialRequestParams.headers.hasOwnProperty('X-WP-Nonce') - ) { - noncePrev = initialRequestParams['headers']['X-WP-Nonce']; - } - - // Check if initialRequestParams['data']['_ajax_nonce'] exists. - if ( - initialRequestParams.hasOwnProperty('data') && - initialRequestParams.data.hasOwnProperty('_ajax_nonce') - ) { - noncePrev = initialRequestParams['data']['_ajax_nonce']; - } - - // Nonce is not provided. Exit. - if ( noncePrev === '' ) { - return; - } - - // prepare params for refreshing nonce - let params = {}; - params.method = 'POST'; - params.data = { - 'spbc_remote_call_action': 'get_fresh_wpnonce', - 'plugin_name': 'antispam', - 'nonce_prev': noncePrev, - 'initial_request_params': initialRequestParams, - }; - params.notJson = true; - params.url = ctPublicFunctions._ajax_url; - // this callback will rerun the XHR with initial params - params.callback = function(...args) { - // the refresh result itself - let freshNonceResult = args[0]; - let newRequestParams = false; - // provided initial params - if (args[1] !== undefined && args[1].hasOwnProperty('initial_request_params')) { - newRequestParams = args[1].initial_request_params; - } - if (newRequestParams && freshNonceResult.hasOwnProperty('wpnonce')) { - ctPublicFunctions._fresh_nonce = freshNonceResult.wpnonce; - if (ctPublicFunctions.data__ajax_type === 'rest') { - new ApbctCore().rest(newRequestParams); - } else { - new ApbctCore().ajax(newRequestParams); - } - } - }; - // run the nonce refreshing call - new ApbctXhr(params); - } - - /** - * @param {number} httpCode - * @param {string} statusText - * @param {string} additionalMsg - */ - error(httpCode, statusText, additionalMsg) { - let errorString = ''; - - if ( statusText === 'timeout' ) { - errorString += 'Server response timeout'; - } else if ( httpCode === 200 ) { - if ( statusText === 'parsererror' ) { - errorString += 'Unexpected response from server. See console for details.'; - } else { - errorString += 'Unexpected error. Status: ' + statusText + '.'; - if ( typeof additionalMsg !== 'undefined' ) { - errorString += ' Additional error info: ' + additionalMsg; - } - } - } else if (httpCode === 500) { - errorString += 'Internal server error.'; - } else { - errorString += 'Unexpected response code:' + httpCode; - } - - this.errorOutput( errorString ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback(this.status_text); - } - } - - /** - * @param {string} errorMsg - */ - errorOutput(errorMsg) { - console.log( '%c ctXHR error: %c' + errorMsg, 'color: red;', 'color: grey;' ); - } - - /** - * setHeaders - */ - setHeaders() { - // Set headers if passed - for ( let headerName in this.headers ) { - if ( typeof this.headers[headerName] !== 'undefined' ) { - this.xhr.setRequestHeader(headerName, this.headers[headerName]); - } - } - } - - /** - * @return {string|*} - */ - convertData() { - // GET, HEAD request-type - if ( ~this.methods_to_convert_data_to_URL.indexOf( this.method ) ) { - return this.convertDataToURL(); - - // POST request-type - } else { - return this.convertDataToBody(); - } - } - - /** - * @return {string} - */ - convertDataToURL() { - let paramsAppendix = new URLSearchParams(this.data).toString(); - let paramsPrefix = this.url.match(/^(https?:\/{2})?[a-z0-9.]+\?/) ? '&' : '?'; - this.url += paramsPrefix + paramsAppendix; - - return this.url; - } - - /** - * @return {null} - */ - convertDataToBody() { - this.body = new FormData(); - for (let dataKey in this.data) { - if (Object.hasOwn(this.data, dataKey)) { - this.body.append( - dataKey, - typeof this.data[dataKey] === 'object' ? - JSON.stringify(this.data[dataKey]) : - this.data[dataKey], - ); - } - } - - return this.body; - } - - /** - * Recursive - * - * Recursively decode JSON-encoded properties - * - * @param {object} object - * @return {*} - */ - deleteDoubleJSONEncoding(object) { - if ( typeof object === 'object') { - for (let objectKey in object) { - if (Object.hasOwn(object, objectKey)) { - // Recursion - if ( typeof object[objectKey] === 'object') { - object[objectKey] = this.deleteDoubleJSONEncoding(object[objectKey]); - } - - // Common case (out) - if ( - typeof object[objectKey] === 'string' && - object[objectKey].match(/^[\[{].*?[\]}]$/) !== null // is like JSON - ) { - let parsedValue = JSON.parse(object[objectKey]); - if ( typeof parsedValue === 'object' ) { - object[objectKey] = parsedValue; - } - } - } - } - } - - return object; - } -} -// eslint-disable-next-line require-jsdoc -class ApbctAjax extends ApbctXhr { - // eslint-disable-next-line require-jsdoc - constructor(...args) { - args = args[0]; - args.data._ajax_nonce = selectActualNonce(); - super(args); - } -} -// eslint-disable-next-line require-jsdoc -class ApbctRest extends ApbctXhr { - static default_route = ctPublicFunctions._rest_url + 'cleantalk-antispam/v1/'; - route = ''; - - // eslint-disable-next-line require-jsdoc - constructor(...args) { - args = args[0]; - const nonce = selectActualNonce(); - args.url = ApbctRest.default_route + args.route; - args.headers = { - 'X-WP-Nonce': nonce, - }; - super(args); - } -} - // add hasOwn if (!Object.prototype.hasOwn) { Object.defineProperty(Object.prototype, 'hasOwn', { // eslint-disable-line @@ -2200,28 +1719,17 @@ class ApbctFetchProxyProtection { // eslint-disable-line no-unused-vars * Set init params */ // eslint-disable-next-line no-unused-vars,require-jsdoc -function initParams(gatheringLoaded) { - const ctDate = new Date(); - const headless = navigator.webdriver; +function initLegacyParams(gatheringLoaded) { const screenInfo = ( typeof ApbctGatheringData !== 'undefined' && typeof ApbctGatheringData.prototype.getScreenInfo === 'function' ) ? new ApbctGatheringData().getScreenInfo() : ''; - const initCookies = [ - ['ct_ps_timestamp', Math.floor(new Date().getTime() / 1000)], - ['ct_fkp_timestamp', '0'], - ['ct_pointer_data', '0'], - ['ct_timezone', ctDate.getTimezoneOffset()/60*(-1)], - ['ct_screen_info', screenInfo], - ['apbct_headless', headless], - ]; - apbctLocalStorage.set('ct_ps_timestamp', Math.floor(new Date().getTime() / 1000)); + const initCookies = []; + apbctLocalStorage.set('ct_fkp_timestamp', '0'); apbctLocalStorage.set('ct_pointer_data', '0'); - apbctLocalStorage.set('ct_timezone', ctDate.getTimezoneOffset()/60*(-1)); apbctLocalStorage.set('ct_screen_info', screenInfo); - apbctLocalStorage.set('apbct_headless', headless); if ( ctPublic.data__cookies_type !== 'native' ) { initCookies.push(['apbct_visible_fields', '0']); @@ -2273,164 +1781,16 @@ function initParams(gatheringLoaded) { } } - if (apbctLocalStorage.isSet('ct_checkjs')) { - initCookies.push(['ct_checkjs', apbctLocalStorage.get('ct_checkjs')]); - } else { - initCookies.push(['ct_checkjs', 0]); - } - if (gatheringLoaded) { initCookies.push(['ct_gathering_loaded', gatheringLoaded]); + initCookies.push(['ct_fkp_timestamp', '0']); + initCookies.push(['ct_pointer_data', '0']); + initCookies.push(['ct_screen_info', screenInfo]); } ctSetCookie(initCookies); } -/** - * @param {object|array|string} cookies - * @param {object|array|string} value - * @param {string|number} expires - */ -// eslint-disable-next-line no-unused-vars,require-jsdoc -function ctSetCookie( cookies, value, expires='') { - let listOfCookieNamesToForceAlt = [ - 'ct_sfw_pass_key', - 'ct_sfw_passed', - 'apbct_antibot', - 'apbct_anticrawler_passed', - 'apbct_bot_detector_exist', - 'apbct_antiflood_passed', - 'apbct_email_encoder_passed', - ]; - - let skipAlt = false; - - if ( typeof cookies === 'string') { - skipAlt = cookies === 'ct_pointer_data'; - if ( typeof value === 'string' || typeof value === 'number' ) { - cookies = [[cookies, value, expires]]; - } - } - - // Cookies disabled - if ( ctPublicFunctions.data__cookies_type === 'none' ) { - let forcedAltCookiesSet = []; - cookies.forEach( function(item) { - if (listOfCookieNamesToForceAlt.indexOf(item[0]) !== -1) { - forcedAltCookiesSet.push(item); - } else { - apbctLocalStorage.set(item[0], item[1]); - } - }); - - // if cookies from list found use alt cookies for this selection set - if ( forcedAltCookiesSet.length > 0 ) { - ctSetAlternativeCookie(forcedAltCookiesSet); - } - - // If problem integration forms detected use alt cookies for whole cookies set - if ( ctPublic.force_alt_cookies && !skipAlt) { - // do it just once - ctSetAlternativeCookie(cookies, {forceAltCookies: true}); - } else { - ctNoCookieAttachHiddenFieldsToForms(); - } - - // Using traditional cookies - } else if ( ctPublicFunctions.data__cookies_type === 'native' ) { - // If problem integration forms detected use alt cookies for whole cookies set - if ( ctPublic.force_alt_cookies && !skipAlt) { - // do it just once - ctSetAlternativeCookie(cookies, {forceAltCookies: true}); - } - cookies.forEach( function(item) { - const _expires = typeof item[2] !== 'undefined' ? 'expires=' + item[2] + '; ' : ''; - let ctSecure = location.protocol === 'https:' ? '; secure' : ''; - document.cookie = ctPublicFunctions.cookiePrefix + - item[0] + - '=' + - encodeURIComponent(item[1]) + - '; ' + - _expires + - 'path=/; samesite=lax' + - ctSecure; - }); - - // Using alternative cookies - } else if ( ctPublicFunctions.data__cookies_type === 'alternative' && !skipAlt ) { - ctSetAlternativeCookie(cookies); - } -} - -// eslint-disable-next-line require-jsdoc -function ctSetAlternativeCookie(cookies, params) { - if (typeof (getJavascriptClientData) === 'function' ) { - // reprocess already gained cookies data - if (Array.isArray(cookies)) { - cookies = getJavascriptClientData(cookies); - } - } else if (!+ctPublic.bot_detector_enabled) { - console.log('APBCT ERROR: getJavascriptClientData() is not loaded'); - } - - // if cookies is array, convert it to object - if (Array.isArray(cookies) && cookies[0] && cookies[0][0] === 'apbct_bot_detector_exist') { - cookies = {apbct_bot_detector_exist: cookies[0][1]}; - } - // Only try to parse if cookies is a string (JSON) - if (typeof cookies === 'string') { - try { - cookies = JSON.parse(cookies); - } catch (e) { - console.log('APBCT ERROR: JSON parse error:' + e); - return; - } - } - - const callback = params && params.callback || null; - const onErrorCallback = params && params.onErrorCallback || null; - - if ( params && params.forceAltCookies ) { - cookies.apbct_force_alt_cookies = true; - } - - // Using REST API handler - if ( ctPublicFunctions.data__ajax_type === 'rest' ) { - // fix for url encoded cookie apbct_pixel_url on REST route - if (typeof cookies.apbct_pixel_url === 'string' && - cookies.apbct_pixel_url.indexOf('%3A') !== -1 - ) { - cookies.apbct_pixel_url = decodeURIComponent(cookies.apbct_pixel_url); - } - apbct_public_sendREST( - 'alt_sessions', - { - method: 'POST', - data: {cookies: cookies}, - callback: callback, - onErrorCallback: onErrorCallback, - }, - ); - - // Using AJAX request and handler - } else if ( ctPublicFunctions.data__ajax_type === 'admin_ajax' ) { - apbct_public_sendAJAX( - { - action: 'apbct_alt_session__save__AJAX', - cookies: cookies, - }, - { - notJson: 1, - callback: callback, - onErrorCallback: onErrorCallback, - beforeSend: function(xhr) { - xhr.setRequestHeader('X-Robots-Tag', 'noindex, nofollow'); - }, - }, - ); - } -} - /** * Get cookie by name * @param name @@ -2461,55 +1821,6 @@ function ctDeleteCookie(cookieName) { } } -// eslint-disable-next-line require-jsdoc,camelcase -function apbct_public_sendAJAX(data, params, obj) { - // Default params - let _params = []; - _params['callback'] = params.callback || null; - _params['onErrorCallback'] = params.onErrorCallback || null; - _params['callback_context'] = params.callback_context || null; - _params['callback_params'] = params.callback_params || null; - _params['async'] = params.async || true; - _params['notJson'] = params.notJson || null; - _params['responseType']= params.notJson ? 'text' : 'json'; - _params['timeout'] = params.timeout || 15000; - _params['obj'] = obj || null; - _params['button'] = params.button || null; - _params['spinner'] = params.spinner || null; - _params['progressbar'] = params.progressbar || null; - _params['silent'] = params.silent || null; - _params['no_nonce'] = params.no_nonce || null; - _params['data'] = data; - _params['url'] = ctPublicFunctions._ajax_url; - const nonce = selectActualNonce(); - - if (typeof (data) === 'string') { - if ( ! _params['no_nonce'] ) { - _params['data'] = _params['data'] + '&_ajax_nonce=' + nonce; - } - _params['data'] = _params['data'] + '&no_cache=' + Math.random(); - } else { - if ( ! _params['no_nonce'] ) { - _params['data']._ajax_nonce = nonce; - } - _params['data'].no_cache = Math.random(); - } - - new ApbctCore().ajax(_params); -} - -// eslint-disable-next-line require-jsdoc,camelcase -function apbct_public_sendREST( route, params ) { - let _params = []; - _params['route'] = route; - _params['callback'] = params.callback || null; - _params['onErrorCallback'] = params.onErrorCallback || null; - _params['data'] = params.data || []; - _params['method'] = params.method || 'POST'; - - new ApbctCore().rest(_params); -} - // eslint-disable-next-line require-jsdoc,camelcase,no-unused-vars function apbct_attach_event_handler(elem, event, callback) { if (typeof window.addEventListener === 'function') elem.addEventListener(event, callback); @@ -2553,130 +1864,6 @@ function removeDoubleJsonEncoding(object) { // eslint-disable-line no-unused-var return object; } -/** - * @return {boolean|*} - */ -function ctGetPageForms() { // eslint-disable-line no-unused-vars - let forms = document.forms; - if (forms) { - return forms; - } - return false; -} - -// eslint-disable-next-line camelcase,require-jsdoc,no-unused-vars -function apbct_js_keys__set_input_value(result, data, params, obj) { - if ( document.querySelectorAll('[name^=ct_checkjs]').length > 0 ) { - let elements = document.querySelectorAll('[name^=ct_checkjs]'); - for ( let i = 0; i < elements.length; i++ ) { - elements[i].value = result.js_key; - } - } -} - -let apbctLocalStorage = { - get: function(key, property) { - if ( typeof property === 'undefined' ) { - property = 'value'; - } - const storageValue = localStorage.getItem(key); - if ( storageValue !== null ) { - try { - const json = JSON.parse(storageValue); - if ( json.hasOwnProperty(property) ) { - try { - const parsed = JSON.parse( json[property] ); - if ( parsed !== null && typeof parsed === 'object' ) { - return json[property].toString(); - } - return parsed; - } catch (e) { - return json[property].toString(); - } - } else { - return json; - } - } catch (e) { - return storageValue; - } - } - return false; - }, - set: function(key, value, isJson = true) { - if (isJson) { - let objToSave = {'value': JSON.stringify(value), 'timestamp': Math.floor(new Date().getTime() / 1000)}; - localStorage.setItem(key, JSON.stringify(objToSave)); - } else { - localStorage.setItem(key, value); - } - }, - isAlive: function(key, maxLifetime) { - if ( typeof maxLifetime === 'undefined' ) { - maxLifetime = 86400; - } - const keyTimestamp = this.get(key, 'timestamp'); - return keyTimestamp + maxLifetime > Math.floor(new Date().getTime() / 1000); - }, - isSet: function(key) { - return localStorage.getItem(key) !== null; - }, - delete: function(key) { - localStorage.removeItem(key); - }, - getCleanTalkData: function() { - let data = {}; - for (let i=0; i 0 - ) { - return ctPublicFunctions._fresh_nonce; - } - // select from default rest/ajax nonces - if ( - ctPublicFunctions.data__ajax_type === 'admin_ajax' && - ctPublicFunctions.hasOwnProperty('_ajax_nonce') && - typeof ctPublicFunctions._ajax_nonce === 'string' && - ctPublicFunctions._ajax_nonce.length > 0 - ) { - defaultNonce = ctPublicFunctions._ajax_nonce; - } - if ( - ctPublicFunctions.data__ajax_type === 'rest' && - ctPublicFunctions.hasOwnProperty('_rest_nonce') && - typeof ctPublicFunctions._rest_nonce === 'string' && - ctPublicFunctions._rest_nonce.length > 0 - ) { - defaultNonce = ctPublicFunctions._rest_nonce; - } - - return defaultNonce; -} - /** * Enter point to ApbctCore class * @@ -1528,452 +1493,6 @@ function apbct(params) { .select(params); } -/** - * ApbctXhr - */ -class ApbctXhr { - xhr = new XMLHttpRequest(); - - // Base parameters - method = 'POST'; // HTTP-request type - url = ''; // URL to send the request - async = true; - user = null; // HTTP-authorization username - password = null; // HTTP-authorization password - data = {}; // Data to send - - // Optional params - button = null; // Button that should be disabled when request is performing - spinner = null; // Spinner that should appear when request is in process - progressbar = null; // Progress bar for the current request - context = this; // Context - callback = null; - onErrorCallback = null; - - responseType = 'json'; // Expected data type from server - headers = {}; - timeout = 15000; // Request timeout in milliseconds - - methods_to_convert_data_to_URL = [ - 'GET', - 'HEAD', - ]; - - body = null; - http_code = 0; - status_text = ''; - - // eslint-disable-next-line require-jsdoc - constructor(parameters) { - // Set class properties - for ( let key in parameters ) { - if ( typeof this[key] !== 'undefined' ) { - this[key] = parameters[key]; - } - } - - // Modifying DOM-elements - this.prepare(); - - // Modify URL with data for GET and HEAD requests - if ( Object.keys(this.data).length ) { - this.deleteDoubleJSONEncoding(this.data); - this.convertData(); - } - - if ( ! this.url ) { - console.log('%cXHR%c not URL provided', - 'color: red; font-weight: bold;', 'color: grey; font-weight: normal;'); - return false; - } - - // Configure the request - this.xhr.open(this.method, this.url, this.async, this.user, this.password); - this.setHeaders(); - - this.xhr.responseType = this.responseType; - this.xhr.timeout = this.timeout; - - /* EVENTS */ - // Monitoring status - this.xhr.onreadystatechange = function() { - if (this.isWpNonceError()) { - this.getFreshNonceAndRerunXHR(parameters); - return; - } - this.onReadyStateChange(); - }.bind(this); - - // Run callback - this.xhr.onload = function() { - this.onLoad(); - }.bind(this); - - // On progress - this.xhr.onprogress = function(event) { - this.onProgress(event); - }.bind(this); - - // On error - this.xhr.onerror = function() { - this.onError(); - }.bind(this); - - this.xhr.ontimeout = function() { - this.onTimeout(); - }.bind(this); - - // Send the request - this.xhr.send(this.body); - } - - /** - * prepare - */ - prepare() { - // Disable button - if (this.button) { - this.button.setAttribute('disabled', 'disabled'); - this.button.style.cursor = 'not-allowed'; - } - - // Enable spinner - if (this.spinner) { - this.spinner.style.display = 'inline'; - } - } - - /** - * complete - */ - complete() { - this.http_code = this.xhr.status; - this.status_text = this.xhr.statusText; - - // Disable button - if (this.button) { - this.button.removeAttribute('disabled'); - this.button.style.cursor = 'auto'; - } - - // Enable spinner - if (this.spinner) { - this.spinner.style.display = 'none'; - } - - if ( this.progressbar ) { - this.progressbar.fadeOut('slow'); - } - } - - /** - * onReadyStateChange - */ - onReadyStateChange() { - if (this.on_ready_state_change !== null && typeof this.on_ready_state_change === 'function') { - this.on_ready_state_change(); - } - } - - /** - * @param {object} event - */ - onProgress(event) { - if (this.on_progress !== null && typeof this.on_progress === 'function') { - this.on_progress(); - } - } - - /** - * onError - */ - onError() { - console.log('error'); - - this.complete(); - this.error( - this.http_code, - this.status_text, - ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback(this.status_text); - } - } - - /** - * onTimeout - */ - onTimeout() { - this.complete(); - this.error( - 0, - 'timeout', - ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback('Timeout'); - } - } - - /** - * @return {boolean} - */ - onLoad() { - this.complete(); - - if (this.responseType === 'json' ) { - if (this.xhr.response === null) { - this.error(this.http_code, this.status_text, 'No response'); - return false; - } else if ( typeof this.xhr.response.error !== 'undefined') { - this.error(this.http_code, this.status_text, this.xhr.response.error); - return false; - } - } - - if (this.callback !== null && typeof this.callback === 'function') { - this.callback.call(this.context, this.xhr.response, this.data); - } - } - - /** - * Check if 403 code of WP nonce error - * @return {bool} - */ - isWpNonceError() { - let restErrror = false; - let ajaxErrror = false; - // check rest error - if (this.xhr.readyState == 4) { - restErrror = ( - typeof this.xhr.response === 'object' && this.xhr.response !== null && - this.xhr.response.hasOwnProperty('data') && - this.xhr.response.data.hasOwnProperty('status') && - this.xhr.response.data.status === 403 - ); - ajaxErrror = this.xhr.response === '-1' && this.xhr.status === 403; - } - // todo check AJAX error - return restErrror || ajaxErrror; - } - - /** - * Get the fresh nonce and rerun the initial XHR with params - * @param {[]} initialRequestParams - */ - getFreshNonceAndRerunXHR(initialRequestParams) { - let noncePrev = ''; - - // Check if initialRequestParams['headers']['X-WP-Nonce'] exists. - if ( - initialRequestParams.hasOwnProperty('headers') && - initialRequestParams.headers.hasOwnProperty('X-WP-Nonce') - ) { - noncePrev = initialRequestParams['headers']['X-WP-Nonce']; - } - - // Check if initialRequestParams['data']['_ajax_nonce'] exists. - if ( - initialRequestParams.hasOwnProperty('data') && - initialRequestParams.data.hasOwnProperty('_ajax_nonce') - ) { - noncePrev = initialRequestParams['data']['_ajax_nonce']; - } - - // Nonce is not provided. Exit. - if ( noncePrev === '' ) { - return; - } - - // prepare params for refreshing nonce - let params = {}; - params.method = 'POST'; - params.data = { - 'spbc_remote_call_action': 'get_fresh_wpnonce', - 'plugin_name': 'antispam', - 'nonce_prev': noncePrev, - 'initial_request_params': initialRequestParams, - }; - params.notJson = true; - params.url = ctPublicFunctions._ajax_url; - // this callback will rerun the XHR with initial params - params.callback = function(...args) { - // the refresh result itself - let freshNonceResult = args[0]; - let newRequestParams = false; - // provided initial params - if (args[1] !== undefined && args[1].hasOwnProperty('initial_request_params')) { - newRequestParams = args[1].initial_request_params; - } - if (newRequestParams && freshNonceResult.hasOwnProperty('wpnonce')) { - ctPublicFunctions._fresh_nonce = freshNonceResult.wpnonce; - if (ctPublicFunctions.data__ajax_type === 'rest') { - new ApbctCore().rest(newRequestParams); - } else { - new ApbctCore().ajax(newRequestParams); - } - } - }; - // run the nonce refreshing call - new ApbctXhr(params); - } - - /** - * @param {number} httpCode - * @param {string} statusText - * @param {string} additionalMsg - */ - error(httpCode, statusText, additionalMsg) { - let errorString = ''; - - if ( statusText === 'timeout' ) { - errorString += 'Server response timeout'; - } else if ( httpCode === 200 ) { - if ( statusText === 'parsererror' ) { - errorString += 'Unexpected response from server. See console for details.'; - } else { - errorString += 'Unexpected error. Status: ' + statusText + '.'; - if ( typeof additionalMsg !== 'undefined' ) { - errorString += ' Additional error info: ' + additionalMsg; - } - } - } else if (httpCode === 500) { - errorString += 'Internal server error.'; - } else { - errorString += 'Unexpected response code:' + httpCode; - } - - this.errorOutput( errorString ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback(this.status_text); - } - } - - /** - * @param {string} errorMsg - */ - errorOutput(errorMsg) { - console.log( '%c ctXHR error: %c' + errorMsg, 'color: red;', 'color: grey;' ); - } - - /** - * setHeaders - */ - setHeaders() { - // Set headers if passed - for ( let headerName in this.headers ) { - if ( typeof this.headers[headerName] !== 'undefined' ) { - this.xhr.setRequestHeader(headerName, this.headers[headerName]); - } - } - } - - /** - * @return {string|*} - */ - convertData() { - // GET, HEAD request-type - if ( ~this.methods_to_convert_data_to_URL.indexOf( this.method ) ) { - return this.convertDataToURL(); - - // POST request-type - } else { - return this.convertDataToBody(); - } - } - - /** - * @return {string} - */ - convertDataToURL() { - let paramsAppendix = new URLSearchParams(this.data).toString(); - let paramsPrefix = this.url.match(/^(https?:\/{2})?[a-z0-9.]+\?/) ? '&' : '?'; - this.url += paramsPrefix + paramsAppendix; - - return this.url; - } - - /** - * @return {null} - */ - convertDataToBody() { - this.body = new FormData(); - for (let dataKey in this.data) { - if (Object.hasOwn(this.data, dataKey)) { - this.body.append( - dataKey, - typeof this.data[dataKey] === 'object' ? - JSON.stringify(this.data[dataKey]) : - this.data[dataKey], - ); - } - } - - return this.body; - } - - /** - * Recursive - * - * Recursively decode JSON-encoded properties - * - * @param {object} object - * @return {*} - */ - deleteDoubleJSONEncoding(object) { - if ( typeof object === 'object') { - for (let objectKey in object) { - if (Object.hasOwn(object, objectKey)) { - // Recursion - if ( typeof object[objectKey] === 'object') { - object[objectKey] = this.deleteDoubleJSONEncoding(object[objectKey]); - } - - // Common case (out) - if ( - typeof object[objectKey] === 'string' && - object[objectKey].match(/^[\[{].*?[\]}]$/) !== null // is like JSON - ) { - let parsedValue = JSON.parse(object[objectKey]); - if ( typeof parsedValue === 'object' ) { - object[objectKey] = parsedValue; - } - } - } - } - } - - return object; - } -} -// eslint-disable-next-line require-jsdoc -class ApbctAjax extends ApbctXhr { - // eslint-disable-next-line require-jsdoc - constructor(...args) { - args = args[0]; - args.data._ajax_nonce = selectActualNonce(); - super(args); - } -} -// eslint-disable-next-line require-jsdoc -class ApbctRest extends ApbctXhr { - static default_route = ctPublicFunctions._rest_url + 'cleantalk-antispam/v1/'; - route = ''; - - // eslint-disable-next-line require-jsdoc - constructor(...args) { - args = args[0]; - const nonce = selectActualNonce(); - args.url = ApbctRest.default_route + args.route; - args.headers = { - 'X-WP-Nonce': nonce, - }; - super(args); - } -} - // add hasOwn if (!Object.prototype.hasOwn) { Object.defineProperty(Object.prototype, 'hasOwn', { // eslint-disable-line @@ -2200,28 +1719,17 @@ class ApbctFetchProxyProtection { // eslint-disable-line no-unused-vars * Set init params */ // eslint-disable-next-line no-unused-vars,require-jsdoc -function initParams(gatheringLoaded) { - const ctDate = new Date(); - const headless = navigator.webdriver; +function initLegacyParams(gatheringLoaded) { const screenInfo = ( typeof ApbctGatheringData !== 'undefined' && typeof ApbctGatheringData.prototype.getScreenInfo === 'function' ) ? new ApbctGatheringData().getScreenInfo() : ''; - const initCookies = [ - ['ct_ps_timestamp', Math.floor(new Date().getTime() / 1000)], - ['ct_fkp_timestamp', '0'], - ['ct_pointer_data', '0'], - ['ct_timezone', ctDate.getTimezoneOffset()/60*(-1)], - ['ct_screen_info', screenInfo], - ['apbct_headless', headless], - ]; - apbctLocalStorage.set('ct_ps_timestamp', Math.floor(new Date().getTime() / 1000)); + const initCookies = []; + apbctLocalStorage.set('ct_fkp_timestamp', '0'); apbctLocalStorage.set('ct_pointer_data', '0'); - apbctLocalStorage.set('ct_timezone', ctDate.getTimezoneOffset()/60*(-1)); apbctLocalStorage.set('ct_screen_info', screenInfo); - apbctLocalStorage.set('apbct_headless', headless); if ( ctPublic.data__cookies_type !== 'native' ) { initCookies.push(['apbct_visible_fields', '0']); @@ -2273,164 +1781,16 @@ function initParams(gatheringLoaded) { } } - if (apbctLocalStorage.isSet('ct_checkjs')) { - initCookies.push(['ct_checkjs', apbctLocalStorage.get('ct_checkjs')]); - } else { - initCookies.push(['ct_checkjs', 0]); - } - if (gatheringLoaded) { initCookies.push(['ct_gathering_loaded', gatheringLoaded]); + initCookies.push(['ct_fkp_timestamp', '0']); + initCookies.push(['ct_pointer_data', '0']); + initCookies.push(['ct_screen_info', screenInfo]); } ctSetCookie(initCookies); } -/** - * @param {object|array|string} cookies - * @param {object|array|string} value - * @param {string|number} expires - */ -// eslint-disable-next-line no-unused-vars,require-jsdoc -function ctSetCookie( cookies, value, expires='') { - let listOfCookieNamesToForceAlt = [ - 'ct_sfw_pass_key', - 'ct_sfw_passed', - 'apbct_antibot', - 'apbct_anticrawler_passed', - 'apbct_bot_detector_exist', - 'apbct_antiflood_passed', - 'apbct_email_encoder_passed', - ]; - - let skipAlt = false; - - if ( typeof cookies === 'string') { - skipAlt = cookies === 'ct_pointer_data'; - if ( typeof value === 'string' || typeof value === 'number' ) { - cookies = [[cookies, value, expires]]; - } - } - - // Cookies disabled - if ( ctPublicFunctions.data__cookies_type === 'none' ) { - let forcedAltCookiesSet = []; - cookies.forEach( function(item) { - if (listOfCookieNamesToForceAlt.indexOf(item[0]) !== -1) { - forcedAltCookiesSet.push(item); - } else { - apbctLocalStorage.set(item[0], item[1]); - } - }); - - // if cookies from list found use alt cookies for this selection set - if ( forcedAltCookiesSet.length > 0 ) { - ctSetAlternativeCookie(forcedAltCookiesSet); - } - - // If problem integration forms detected use alt cookies for whole cookies set - if ( ctPublic.force_alt_cookies && !skipAlt) { - // do it just once - ctSetAlternativeCookie(cookies, {forceAltCookies: true}); - } else { - ctNoCookieAttachHiddenFieldsToForms(); - } - - // Using traditional cookies - } else if ( ctPublicFunctions.data__cookies_type === 'native' ) { - // If problem integration forms detected use alt cookies for whole cookies set - if ( ctPublic.force_alt_cookies && !skipAlt) { - // do it just once - ctSetAlternativeCookie(cookies, {forceAltCookies: true}); - } - cookies.forEach( function(item) { - const _expires = typeof item[2] !== 'undefined' ? 'expires=' + item[2] + '; ' : ''; - let ctSecure = location.protocol === 'https:' ? '; secure' : ''; - document.cookie = ctPublicFunctions.cookiePrefix + - item[0] + - '=' + - encodeURIComponent(item[1]) + - '; ' + - _expires + - 'path=/; samesite=lax' + - ctSecure; - }); - - // Using alternative cookies - } else if ( ctPublicFunctions.data__cookies_type === 'alternative' && !skipAlt ) { - ctSetAlternativeCookie(cookies); - } -} - -// eslint-disable-next-line require-jsdoc -function ctSetAlternativeCookie(cookies, params) { - if (typeof (getJavascriptClientData) === 'function' ) { - // reprocess already gained cookies data - if (Array.isArray(cookies)) { - cookies = getJavascriptClientData(cookies); - } - } else if (!+ctPublic.bot_detector_enabled) { - console.log('APBCT ERROR: getJavascriptClientData() is not loaded'); - } - - // if cookies is array, convert it to object - if (Array.isArray(cookies) && cookies[0] && cookies[0][0] === 'apbct_bot_detector_exist') { - cookies = {apbct_bot_detector_exist: cookies[0][1]}; - } - // Only try to parse if cookies is a string (JSON) - if (typeof cookies === 'string') { - try { - cookies = JSON.parse(cookies); - } catch (e) { - console.log('APBCT ERROR: JSON parse error:' + e); - return; - } - } - - const callback = params && params.callback || null; - const onErrorCallback = params && params.onErrorCallback || null; - - if ( params && params.forceAltCookies ) { - cookies.apbct_force_alt_cookies = true; - } - - // Using REST API handler - if ( ctPublicFunctions.data__ajax_type === 'rest' ) { - // fix for url encoded cookie apbct_pixel_url on REST route - if (typeof cookies.apbct_pixel_url === 'string' && - cookies.apbct_pixel_url.indexOf('%3A') !== -1 - ) { - cookies.apbct_pixel_url = decodeURIComponent(cookies.apbct_pixel_url); - } - apbct_public_sendREST( - 'alt_sessions', - { - method: 'POST', - data: {cookies: cookies}, - callback: callback, - onErrorCallback: onErrorCallback, - }, - ); - - // Using AJAX request and handler - } else if ( ctPublicFunctions.data__ajax_type === 'admin_ajax' ) { - apbct_public_sendAJAX( - { - action: 'apbct_alt_session__save__AJAX', - cookies: cookies, - }, - { - notJson: 1, - callback: callback, - onErrorCallback: onErrorCallback, - beforeSend: function(xhr) { - xhr.setRequestHeader('X-Robots-Tag', 'noindex, nofollow'); - }, - }, - ); - } -} - /** * Get cookie by name * @param name @@ -2461,55 +1821,6 @@ function ctDeleteCookie(cookieName) { } } -// eslint-disable-next-line require-jsdoc,camelcase -function apbct_public_sendAJAX(data, params, obj) { - // Default params - let _params = []; - _params['callback'] = params.callback || null; - _params['onErrorCallback'] = params.onErrorCallback || null; - _params['callback_context'] = params.callback_context || null; - _params['callback_params'] = params.callback_params || null; - _params['async'] = params.async || true; - _params['notJson'] = params.notJson || null; - _params['responseType']= params.notJson ? 'text' : 'json'; - _params['timeout'] = params.timeout || 15000; - _params['obj'] = obj || null; - _params['button'] = params.button || null; - _params['spinner'] = params.spinner || null; - _params['progressbar'] = params.progressbar || null; - _params['silent'] = params.silent || null; - _params['no_nonce'] = params.no_nonce || null; - _params['data'] = data; - _params['url'] = ctPublicFunctions._ajax_url; - const nonce = selectActualNonce(); - - if (typeof (data) === 'string') { - if ( ! _params['no_nonce'] ) { - _params['data'] = _params['data'] + '&_ajax_nonce=' + nonce; - } - _params['data'] = _params['data'] + '&no_cache=' + Math.random(); - } else { - if ( ! _params['no_nonce'] ) { - _params['data']._ajax_nonce = nonce; - } - _params['data'].no_cache = Math.random(); - } - - new ApbctCore().ajax(_params); -} - -// eslint-disable-next-line require-jsdoc,camelcase -function apbct_public_sendREST( route, params ) { - let _params = []; - _params['route'] = route; - _params['callback'] = params.callback || null; - _params['onErrorCallback'] = params.onErrorCallback || null; - _params['data'] = params.data || []; - _params['method'] = params.method || 'POST'; - - new ApbctCore().rest(_params); -} - // eslint-disable-next-line require-jsdoc,camelcase,no-unused-vars function apbct_attach_event_handler(elem, event, callback) { if (typeof window.addEventListener === 'function') elem.addEventListener(event, callback); @@ -2553,130 +1864,6 @@ function removeDoubleJsonEncoding(object) { // eslint-disable-line no-unused-var return object; } -/** - * @return {boolean|*} - */ -function ctGetPageForms() { // eslint-disable-line no-unused-vars - let forms = document.forms; - if (forms) { - return forms; - } - return false; -} - -// eslint-disable-next-line camelcase,require-jsdoc,no-unused-vars -function apbct_js_keys__set_input_value(result, data, params, obj) { - if ( document.querySelectorAll('[name^=ct_checkjs]').length > 0 ) { - let elements = document.querySelectorAll('[name^=ct_checkjs]'); - for ( let i = 0; i < elements.length; i++ ) { - elements[i].value = result.js_key; - } - } -} - -let apbctLocalStorage = { - get: function(key, property) { - if ( typeof property === 'undefined' ) { - property = 'value'; - } - const storageValue = localStorage.getItem(key); - if ( storageValue !== null ) { - try { - const json = JSON.parse(storageValue); - if ( json.hasOwnProperty(property) ) { - try { - const parsed = JSON.parse( json[property] ); - if ( parsed !== null && typeof parsed === 'object' ) { - return json[property].toString(); - } - return parsed; - } catch (e) { - return json[property].toString(); - } - } else { - return json; - } - } catch (e) { - return storageValue; - } - } - return false; - }, - set: function(key, value, isJson = true) { - if (isJson) { - let objToSave = {'value': JSON.stringify(value), 'timestamp': Math.floor(new Date().getTime() / 1000)}; - localStorage.setItem(key, JSON.stringify(objToSave)); - } else { - localStorage.setItem(key, value); - } - }, - isAlive: function(key, maxLifetime) { - if ( typeof maxLifetime === 'undefined' ) { - maxLifetime = 86400; - } - const keyTimestamp = this.get(key, 'timestamp'); - return keyTimestamp + maxLifetime > Math.floor(new Date().getTime() / 1000); - }, - isSet: function(key) { - return localStorage.getItem(key) !== null; - }, - delete: function(key) { - localStorage.removeItem(key); - }, - getCleanTalkData: function() { - let data = {}; - for (let i=0; i 0) { + if (forms && forms.length > 0) { for (let i = 0; i < forms.length; i++) { // handle only inputs and textareas const handledFormFields = forms[i].querySelectorAll('input,textarea'); @@ -8405,29 +7519,7 @@ class ApbctBrowserState { } } -/** - * Get the browser state as a key/value pair to attach it to an intercepted request. - * @return {{key: string, value: string}|false} False if there is nothing to attach. - */ -function apbctGetBrowserStatePair() { // eslint-disable-line no-unused-vars - try { - ApbctBrowserState.detectScripts(); - let state = ApbctBrowserState.asDTO(); - if ( ApbctBrowserState.botdLogicLoaded ) { - const transportEnabled = localStorage.getItem(ApbctBrowserState.TRANSPORT_ENABLED_SIGN_KEY) === '1'; - if (transportEnabled) { - state.frontend_data_log = ApbctBrowserState.getFrontendDataLog(); - } else { - state.transport_enabled = 0; - } - } else { - state.frontend_data_log = ApbctBrowserState.getFrontendDataLog(); - } - return {key: ApbctBrowserState.STATE_KEY, value: JSON.stringify(state)}; - } catch (e) { - return false; - } -} + let ctCheckedEmails = {}; let ctCheckedEmailsExist = {}; diff --git a/js/prebuild/apbct-public-bundle_gathering.js b/js/prebuild/apbct-public-bundle_gathering.js index 4d6ebf0d6..c25ab5789 100644 --- a/js/prebuild/apbct-public-bundle_gathering.js +++ b/js/prebuild/apbct-public-bundle_gathering.js @@ -1481,41 +1481,6 @@ class ApbctCore { } } -/** - * Select actual WP nonce depending on the ajax type and the fresh nonce provided. - * @return {string} url - */ -function selectActualNonce() { - let defaultNonce = ''; - // return fresh nonce immediately if persists - if ( - ctPublicFunctions.hasOwnProperty('_fresh_nonce') && - typeof ctPublicFunctions._fresh_nonce === 'string' && - ctPublicFunctions._fresh_nonce.length > 0 - ) { - return ctPublicFunctions._fresh_nonce; - } - // select from default rest/ajax nonces - if ( - ctPublicFunctions.data__ajax_type === 'admin_ajax' && - ctPublicFunctions.hasOwnProperty('_ajax_nonce') && - typeof ctPublicFunctions._ajax_nonce === 'string' && - ctPublicFunctions._ajax_nonce.length > 0 - ) { - defaultNonce = ctPublicFunctions._ajax_nonce; - } - if ( - ctPublicFunctions.data__ajax_type === 'rest' && - ctPublicFunctions.hasOwnProperty('_rest_nonce') && - typeof ctPublicFunctions._rest_nonce === 'string' && - ctPublicFunctions._rest_nonce.length > 0 - ) { - defaultNonce = ctPublicFunctions._rest_nonce; - } - - return defaultNonce; -} - /** * Enter point to ApbctCore class * @@ -1528,452 +1493,6 @@ function apbct(params) { .select(params); } -/** - * ApbctXhr - */ -class ApbctXhr { - xhr = new XMLHttpRequest(); - - // Base parameters - method = 'POST'; // HTTP-request type - url = ''; // URL to send the request - async = true; - user = null; // HTTP-authorization username - password = null; // HTTP-authorization password - data = {}; // Data to send - - // Optional params - button = null; // Button that should be disabled when request is performing - spinner = null; // Spinner that should appear when request is in process - progressbar = null; // Progress bar for the current request - context = this; // Context - callback = null; - onErrorCallback = null; - - responseType = 'json'; // Expected data type from server - headers = {}; - timeout = 15000; // Request timeout in milliseconds - - methods_to_convert_data_to_URL = [ - 'GET', - 'HEAD', - ]; - - body = null; - http_code = 0; - status_text = ''; - - // eslint-disable-next-line require-jsdoc - constructor(parameters) { - // Set class properties - for ( let key in parameters ) { - if ( typeof this[key] !== 'undefined' ) { - this[key] = parameters[key]; - } - } - - // Modifying DOM-elements - this.prepare(); - - // Modify URL with data for GET and HEAD requests - if ( Object.keys(this.data).length ) { - this.deleteDoubleJSONEncoding(this.data); - this.convertData(); - } - - if ( ! this.url ) { - console.log('%cXHR%c not URL provided', - 'color: red; font-weight: bold;', 'color: grey; font-weight: normal;'); - return false; - } - - // Configure the request - this.xhr.open(this.method, this.url, this.async, this.user, this.password); - this.setHeaders(); - - this.xhr.responseType = this.responseType; - this.xhr.timeout = this.timeout; - - /* EVENTS */ - // Monitoring status - this.xhr.onreadystatechange = function() { - if (this.isWpNonceError()) { - this.getFreshNonceAndRerunXHR(parameters); - return; - } - this.onReadyStateChange(); - }.bind(this); - - // Run callback - this.xhr.onload = function() { - this.onLoad(); - }.bind(this); - - // On progress - this.xhr.onprogress = function(event) { - this.onProgress(event); - }.bind(this); - - // On error - this.xhr.onerror = function() { - this.onError(); - }.bind(this); - - this.xhr.ontimeout = function() { - this.onTimeout(); - }.bind(this); - - // Send the request - this.xhr.send(this.body); - } - - /** - * prepare - */ - prepare() { - // Disable button - if (this.button) { - this.button.setAttribute('disabled', 'disabled'); - this.button.style.cursor = 'not-allowed'; - } - - // Enable spinner - if (this.spinner) { - this.spinner.style.display = 'inline'; - } - } - - /** - * complete - */ - complete() { - this.http_code = this.xhr.status; - this.status_text = this.xhr.statusText; - - // Disable button - if (this.button) { - this.button.removeAttribute('disabled'); - this.button.style.cursor = 'auto'; - } - - // Enable spinner - if (this.spinner) { - this.spinner.style.display = 'none'; - } - - if ( this.progressbar ) { - this.progressbar.fadeOut('slow'); - } - } - - /** - * onReadyStateChange - */ - onReadyStateChange() { - if (this.on_ready_state_change !== null && typeof this.on_ready_state_change === 'function') { - this.on_ready_state_change(); - } - } - - /** - * @param {object} event - */ - onProgress(event) { - if (this.on_progress !== null && typeof this.on_progress === 'function') { - this.on_progress(); - } - } - - /** - * onError - */ - onError() { - console.log('error'); - - this.complete(); - this.error( - this.http_code, - this.status_text, - ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback(this.status_text); - } - } - - /** - * onTimeout - */ - onTimeout() { - this.complete(); - this.error( - 0, - 'timeout', - ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback('Timeout'); - } - } - - /** - * @return {boolean} - */ - onLoad() { - this.complete(); - - if (this.responseType === 'json' ) { - if (this.xhr.response === null) { - this.error(this.http_code, this.status_text, 'No response'); - return false; - } else if ( typeof this.xhr.response.error !== 'undefined') { - this.error(this.http_code, this.status_text, this.xhr.response.error); - return false; - } - } - - if (this.callback !== null && typeof this.callback === 'function') { - this.callback.call(this.context, this.xhr.response, this.data); - } - } - - /** - * Check if 403 code of WP nonce error - * @return {bool} - */ - isWpNonceError() { - let restErrror = false; - let ajaxErrror = false; - // check rest error - if (this.xhr.readyState == 4) { - restErrror = ( - typeof this.xhr.response === 'object' && this.xhr.response !== null && - this.xhr.response.hasOwnProperty('data') && - this.xhr.response.data.hasOwnProperty('status') && - this.xhr.response.data.status === 403 - ); - ajaxErrror = this.xhr.response === '-1' && this.xhr.status === 403; - } - // todo check AJAX error - return restErrror || ajaxErrror; - } - - /** - * Get the fresh nonce and rerun the initial XHR with params - * @param {[]} initialRequestParams - */ - getFreshNonceAndRerunXHR(initialRequestParams) { - let noncePrev = ''; - - // Check if initialRequestParams['headers']['X-WP-Nonce'] exists. - if ( - initialRequestParams.hasOwnProperty('headers') && - initialRequestParams.headers.hasOwnProperty('X-WP-Nonce') - ) { - noncePrev = initialRequestParams['headers']['X-WP-Nonce']; - } - - // Check if initialRequestParams['data']['_ajax_nonce'] exists. - if ( - initialRequestParams.hasOwnProperty('data') && - initialRequestParams.data.hasOwnProperty('_ajax_nonce') - ) { - noncePrev = initialRequestParams['data']['_ajax_nonce']; - } - - // Nonce is not provided. Exit. - if ( noncePrev === '' ) { - return; - } - - // prepare params for refreshing nonce - let params = {}; - params.method = 'POST'; - params.data = { - 'spbc_remote_call_action': 'get_fresh_wpnonce', - 'plugin_name': 'antispam', - 'nonce_prev': noncePrev, - 'initial_request_params': initialRequestParams, - }; - params.notJson = true; - params.url = ctPublicFunctions._ajax_url; - // this callback will rerun the XHR with initial params - params.callback = function(...args) { - // the refresh result itself - let freshNonceResult = args[0]; - let newRequestParams = false; - // provided initial params - if (args[1] !== undefined && args[1].hasOwnProperty('initial_request_params')) { - newRequestParams = args[1].initial_request_params; - } - if (newRequestParams && freshNonceResult.hasOwnProperty('wpnonce')) { - ctPublicFunctions._fresh_nonce = freshNonceResult.wpnonce; - if (ctPublicFunctions.data__ajax_type === 'rest') { - new ApbctCore().rest(newRequestParams); - } else { - new ApbctCore().ajax(newRequestParams); - } - } - }; - // run the nonce refreshing call - new ApbctXhr(params); - } - - /** - * @param {number} httpCode - * @param {string} statusText - * @param {string} additionalMsg - */ - error(httpCode, statusText, additionalMsg) { - let errorString = ''; - - if ( statusText === 'timeout' ) { - errorString += 'Server response timeout'; - } else if ( httpCode === 200 ) { - if ( statusText === 'parsererror' ) { - errorString += 'Unexpected response from server. See console for details.'; - } else { - errorString += 'Unexpected error. Status: ' + statusText + '.'; - if ( typeof additionalMsg !== 'undefined' ) { - errorString += ' Additional error info: ' + additionalMsg; - } - } - } else if (httpCode === 500) { - errorString += 'Internal server error.'; - } else { - errorString += 'Unexpected response code:' + httpCode; - } - - this.errorOutput( errorString ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback(this.status_text); - } - } - - /** - * @param {string} errorMsg - */ - errorOutput(errorMsg) { - console.log( '%c ctXHR error: %c' + errorMsg, 'color: red;', 'color: grey;' ); - } - - /** - * setHeaders - */ - setHeaders() { - // Set headers if passed - for ( let headerName in this.headers ) { - if ( typeof this.headers[headerName] !== 'undefined' ) { - this.xhr.setRequestHeader(headerName, this.headers[headerName]); - } - } - } - - /** - * @return {string|*} - */ - convertData() { - // GET, HEAD request-type - if ( ~this.methods_to_convert_data_to_URL.indexOf( this.method ) ) { - return this.convertDataToURL(); - - // POST request-type - } else { - return this.convertDataToBody(); - } - } - - /** - * @return {string} - */ - convertDataToURL() { - let paramsAppendix = new URLSearchParams(this.data).toString(); - let paramsPrefix = this.url.match(/^(https?:\/{2})?[a-z0-9.]+\?/) ? '&' : '?'; - this.url += paramsPrefix + paramsAppendix; - - return this.url; - } - - /** - * @return {null} - */ - convertDataToBody() { - this.body = new FormData(); - for (let dataKey in this.data) { - if (Object.hasOwn(this.data, dataKey)) { - this.body.append( - dataKey, - typeof this.data[dataKey] === 'object' ? - JSON.stringify(this.data[dataKey]) : - this.data[dataKey], - ); - } - } - - return this.body; - } - - /** - * Recursive - * - * Recursively decode JSON-encoded properties - * - * @param {object} object - * @return {*} - */ - deleteDoubleJSONEncoding(object) { - if ( typeof object === 'object') { - for (let objectKey in object) { - if (Object.hasOwn(object, objectKey)) { - // Recursion - if ( typeof object[objectKey] === 'object') { - object[objectKey] = this.deleteDoubleJSONEncoding(object[objectKey]); - } - - // Common case (out) - if ( - typeof object[objectKey] === 'string' && - object[objectKey].match(/^[\[{].*?[\]}]$/) !== null // is like JSON - ) { - let parsedValue = JSON.parse(object[objectKey]); - if ( typeof parsedValue === 'object' ) { - object[objectKey] = parsedValue; - } - } - } - } - } - - return object; - } -} -// eslint-disable-next-line require-jsdoc -class ApbctAjax extends ApbctXhr { - // eslint-disable-next-line require-jsdoc - constructor(...args) { - args = args[0]; - args.data._ajax_nonce = selectActualNonce(); - super(args); - } -} -// eslint-disable-next-line require-jsdoc -class ApbctRest extends ApbctXhr { - static default_route = ctPublicFunctions._rest_url + 'cleantalk-antispam/v1/'; - route = ''; - - // eslint-disable-next-line require-jsdoc - constructor(...args) { - args = args[0]; - const nonce = selectActualNonce(); - args.url = ApbctRest.default_route + args.route; - args.headers = { - 'X-WP-Nonce': nonce, - }; - super(args); - } -} - // add hasOwn if (!Object.prototype.hasOwn) { Object.defineProperty(Object.prototype, 'hasOwn', { // eslint-disable-line @@ -2200,28 +1719,17 @@ class ApbctFetchProxyProtection { // eslint-disable-line no-unused-vars * Set init params */ // eslint-disable-next-line no-unused-vars,require-jsdoc -function initParams(gatheringLoaded) { - const ctDate = new Date(); - const headless = navigator.webdriver; +function initLegacyParams(gatheringLoaded) { const screenInfo = ( typeof ApbctGatheringData !== 'undefined' && typeof ApbctGatheringData.prototype.getScreenInfo === 'function' ) ? new ApbctGatheringData().getScreenInfo() : ''; - const initCookies = [ - ['ct_ps_timestamp', Math.floor(new Date().getTime() / 1000)], - ['ct_fkp_timestamp', '0'], - ['ct_pointer_data', '0'], - ['ct_timezone', ctDate.getTimezoneOffset()/60*(-1)], - ['ct_screen_info', screenInfo], - ['apbct_headless', headless], - ]; - apbctLocalStorage.set('ct_ps_timestamp', Math.floor(new Date().getTime() / 1000)); + const initCookies = []; + apbctLocalStorage.set('ct_fkp_timestamp', '0'); apbctLocalStorage.set('ct_pointer_data', '0'); - apbctLocalStorage.set('ct_timezone', ctDate.getTimezoneOffset()/60*(-1)); apbctLocalStorage.set('ct_screen_info', screenInfo); - apbctLocalStorage.set('apbct_headless', headless); if ( ctPublic.data__cookies_type !== 'native' ) { initCookies.push(['apbct_visible_fields', '0']); @@ -2273,164 +1781,16 @@ function initParams(gatheringLoaded) { } } - if (apbctLocalStorage.isSet('ct_checkjs')) { - initCookies.push(['ct_checkjs', apbctLocalStorage.get('ct_checkjs')]); - } else { - initCookies.push(['ct_checkjs', 0]); - } - if (gatheringLoaded) { initCookies.push(['ct_gathering_loaded', gatheringLoaded]); + initCookies.push(['ct_fkp_timestamp', '0']); + initCookies.push(['ct_pointer_data', '0']); + initCookies.push(['ct_screen_info', screenInfo]); } ctSetCookie(initCookies); } -/** - * @param {object|array|string} cookies - * @param {object|array|string} value - * @param {string|number} expires - */ -// eslint-disable-next-line no-unused-vars,require-jsdoc -function ctSetCookie( cookies, value, expires='') { - let listOfCookieNamesToForceAlt = [ - 'ct_sfw_pass_key', - 'ct_sfw_passed', - 'apbct_antibot', - 'apbct_anticrawler_passed', - 'apbct_bot_detector_exist', - 'apbct_antiflood_passed', - 'apbct_email_encoder_passed', - ]; - - let skipAlt = false; - - if ( typeof cookies === 'string') { - skipAlt = cookies === 'ct_pointer_data'; - if ( typeof value === 'string' || typeof value === 'number' ) { - cookies = [[cookies, value, expires]]; - } - } - - // Cookies disabled - if ( ctPublicFunctions.data__cookies_type === 'none' ) { - let forcedAltCookiesSet = []; - cookies.forEach( function(item) { - if (listOfCookieNamesToForceAlt.indexOf(item[0]) !== -1) { - forcedAltCookiesSet.push(item); - } else { - apbctLocalStorage.set(item[0], item[1]); - } - }); - - // if cookies from list found use alt cookies for this selection set - if ( forcedAltCookiesSet.length > 0 ) { - ctSetAlternativeCookie(forcedAltCookiesSet); - } - - // If problem integration forms detected use alt cookies for whole cookies set - if ( ctPublic.force_alt_cookies && !skipAlt) { - // do it just once - ctSetAlternativeCookie(cookies, {forceAltCookies: true}); - } else { - ctNoCookieAttachHiddenFieldsToForms(); - } - - // Using traditional cookies - } else if ( ctPublicFunctions.data__cookies_type === 'native' ) { - // If problem integration forms detected use alt cookies for whole cookies set - if ( ctPublic.force_alt_cookies && !skipAlt) { - // do it just once - ctSetAlternativeCookie(cookies, {forceAltCookies: true}); - } - cookies.forEach( function(item) { - const _expires = typeof item[2] !== 'undefined' ? 'expires=' + item[2] + '; ' : ''; - let ctSecure = location.protocol === 'https:' ? '; secure' : ''; - document.cookie = ctPublicFunctions.cookiePrefix + - item[0] + - '=' + - encodeURIComponent(item[1]) + - '; ' + - _expires + - 'path=/; samesite=lax' + - ctSecure; - }); - - // Using alternative cookies - } else if ( ctPublicFunctions.data__cookies_type === 'alternative' && !skipAlt ) { - ctSetAlternativeCookie(cookies); - } -} - -// eslint-disable-next-line require-jsdoc -function ctSetAlternativeCookie(cookies, params) { - if (typeof (getJavascriptClientData) === 'function' ) { - // reprocess already gained cookies data - if (Array.isArray(cookies)) { - cookies = getJavascriptClientData(cookies); - } - } else if (!+ctPublic.bot_detector_enabled) { - console.log('APBCT ERROR: getJavascriptClientData() is not loaded'); - } - - // if cookies is array, convert it to object - if (Array.isArray(cookies) && cookies[0] && cookies[0][0] === 'apbct_bot_detector_exist') { - cookies = {apbct_bot_detector_exist: cookies[0][1]}; - } - // Only try to parse if cookies is a string (JSON) - if (typeof cookies === 'string') { - try { - cookies = JSON.parse(cookies); - } catch (e) { - console.log('APBCT ERROR: JSON parse error:' + e); - return; - } - } - - const callback = params && params.callback || null; - const onErrorCallback = params && params.onErrorCallback || null; - - if ( params && params.forceAltCookies ) { - cookies.apbct_force_alt_cookies = true; - } - - // Using REST API handler - if ( ctPublicFunctions.data__ajax_type === 'rest' ) { - // fix for url encoded cookie apbct_pixel_url on REST route - if (typeof cookies.apbct_pixel_url === 'string' && - cookies.apbct_pixel_url.indexOf('%3A') !== -1 - ) { - cookies.apbct_pixel_url = decodeURIComponent(cookies.apbct_pixel_url); - } - apbct_public_sendREST( - 'alt_sessions', - { - method: 'POST', - data: {cookies: cookies}, - callback: callback, - onErrorCallback: onErrorCallback, - }, - ); - - // Using AJAX request and handler - } else if ( ctPublicFunctions.data__ajax_type === 'admin_ajax' ) { - apbct_public_sendAJAX( - { - action: 'apbct_alt_session__save__AJAX', - cookies: cookies, - }, - { - notJson: 1, - callback: callback, - onErrorCallback: onErrorCallback, - beforeSend: function(xhr) { - xhr.setRequestHeader('X-Robots-Tag', 'noindex, nofollow'); - }, - }, - ); - } -} - /** * Get cookie by name * @param name @@ -2461,55 +1821,6 @@ function ctDeleteCookie(cookieName) { } } -// eslint-disable-next-line require-jsdoc,camelcase -function apbct_public_sendAJAX(data, params, obj) { - // Default params - let _params = []; - _params['callback'] = params.callback || null; - _params['onErrorCallback'] = params.onErrorCallback || null; - _params['callback_context'] = params.callback_context || null; - _params['callback_params'] = params.callback_params || null; - _params['async'] = params.async || true; - _params['notJson'] = params.notJson || null; - _params['responseType']= params.notJson ? 'text' : 'json'; - _params['timeout'] = params.timeout || 15000; - _params['obj'] = obj || null; - _params['button'] = params.button || null; - _params['spinner'] = params.spinner || null; - _params['progressbar'] = params.progressbar || null; - _params['silent'] = params.silent || null; - _params['no_nonce'] = params.no_nonce || null; - _params['data'] = data; - _params['url'] = ctPublicFunctions._ajax_url; - const nonce = selectActualNonce(); - - if (typeof (data) === 'string') { - if ( ! _params['no_nonce'] ) { - _params['data'] = _params['data'] + '&_ajax_nonce=' + nonce; - } - _params['data'] = _params['data'] + '&no_cache=' + Math.random(); - } else { - if ( ! _params['no_nonce'] ) { - _params['data']._ajax_nonce = nonce; - } - _params['data'].no_cache = Math.random(); - } - - new ApbctCore().ajax(_params); -} - -// eslint-disable-next-line require-jsdoc,camelcase -function apbct_public_sendREST( route, params ) { - let _params = []; - _params['route'] = route; - _params['callback'] = params.callback || null; - _params['onErrorCallback'] = params.onErrorCallback || null; - _params['data'] = params.data || []; - _params['method'] = params.method || 'POST'; - - new ApbctCore().rest(_params); -} - // eslint-disable-next-line require-jsdoc,camelcase,no-unused-vars function apbct_attach_event_handler(elem, event, callback) { if (typeof window.addEventListener === 'function') elem.addEventListener(event, callback); @@ -2553,130 +1864,6 @@ function removeDoubleJsonEncoding(object) { // eslint-disable-line no-unused-var return object; } -/** - * @return {boolean|*} - */ -function ctGetPageForms() { // eslint-disable-line no-unused-vars - let forms = document.forms; - if (forms) { - return forms; - } - return false; -} - -// eslint-disable-next-line camelcase,require-jsdoc,no-unused-vars -function apbct_js_keys__set_input_value(result, data, params, obj) { - if ( document.querySelectorAll('[name^=ct_checkjs]').length > 0 ) { - let elements = document.querySelectorAll('[name^=ct_checkjs]'); - for ( let i = 0; i < elements.length; i++ ) { - elements[i].value = result.js_key; - } - } -} - -let apbctLocalStorage = { - get: function(key, property) { - if ( typeof property === 'undefined' ) { - property = 'value'; - } - const storageValue = localStorage.getItem(key); - if ( storageValue !== null ) { - try { - const json = JSON.parse(storageValue); - if ( json.hasOwnProperty(property) ) { - try { - const parsed = JSON.parse( json[property] ); - if ( parsed !== null && typeof parsed === 'object' ) { - return json[property].toString(); - } - return parsed; - } catch (e) { - return json[property].toString(); - } - } else { - return json; - } - } catch (e) { - return storageValue; - } - } - return false; - }, - set: function(key, value, isJson = true) { - if (isJson) { - let objToSave = {'value': JSON.stringify(value), 'timestamp': Math.floor(new Date().getTime() / 1000)}; - localStorage.setItem(key, JSON.stringify(objToSave)); - } else { - localStorage.setItem(key, value); - } - }, - isAlive: function(key, maxLifetime) { - if ( typeof maxLifetime === 'undefined' ) { - maxLifetime = 86400; - } - const keyTimestamp = this.get(key, 'timestamp'); - return keyTimestamp + maxLifetime > Math.floor(new Date().getTime() / 1000); - }, - isSet: function(key) { - return localStorage.getItem(key) !== null; - }, - delete: function(key) { - localStorage.removeItem(key); - }, - getCleanTalkData: function() { - let data = {}; - for (let i=0; i 0) { + if (forms && forms.length > 0) { for (let i = 0; i < forms.length; i++) { // handle only inputs and textareas const handledFormFields = forms[i].querySelectorAll('input,textarea'); @@ -6802,29 +5916,7 @@ class ApbctBrowserState { } } -/** - * Get the browser state as a key/value pair to attach it to an intercepted request. - * @return {{key: string, value: string}|false} False if there is nothing to attach. - */ -function apbctGetBrowserStatePair() { // eslint-disable-line no-unused-vars - try { - ApbctBrowserState.detectScripts(); - let state = ApbctBrowserState.asDTO(); - if ( ApbctBrowserState.botdLogicLoaded ) { - const transportEnabled = localStorage.getItem(ApbctBrowserState.TRANSPORT_ENABLED_SIGN_KEY) === '1'; - if (transportEnabled) { - state.frontend_data_log = ApbctBrowserState.getFrontendDataLog(); - } else { - state.transport_enabled = 0; - } - } else { - state.frontend_data_log = ApbctBrowserState.getFrontendDataLog(); - } - return {key: ApbctBrowserState.STATE_KEY, value: JSON.stringify(state)}; - } catch (e) { - return false; - } -} + let ctCheckedEmails = {}; let ctCheckedEmailsExist = {}; diff --git a/js/prebuild/apbct-public-bundle_int-protection.js b/js/prebuild/apbct-public-bundle_int-protection.js index 284a8d883..f95762156 100644 --- a/js/prebuild/apbct-public-bundle_int-protection.js +++ b/js/prebuild/apbct-public-bundle_int-protection.js @@ -1481,41 +1481,6 @@ class ApbctCore { } } -/** - * Select actual WP nonce depending on the ajax type and the fresh nonce provided. - * @return {string} url - */ -function selectActualNonce() { - let defaultNonce = ''; - // return fresh nonce immediately if persists - if ( - ctPublicFunctions.hasOwnProperty('_fresh_nonce') && - typeof ctPublicFunctions._fresh_nonce === 'string' && - ctPublicFunctions._fresh_nonce.length > 0 - ) { - return ctPublicFunctions._fresh_nonce; - } - // select from default rest/ajax nonces - if ( - ctPublicFunctions.data__ajax_type === 'admin_ajax' && - ctPublicFunctions.hasOwnProperty('_ajax_nonce') && - typeof ctPublicFunctions._ajax_nonce === 'string' && - ctPublicFunctions._ajax_nonce.length > 0 - ) { - defaultNonce = ctPublicFunctions._ajax_nonce; - } - if ( - ctPublicFunctions.data__ajax_type === 'rest' && - ctPublicFunctions.hasOwnProperty('_rest_nonce') && - typeof ctPublicFunctions._rest_nonce === 'string' && - ctPublicFunctions._rest_nonce.length > 0 - ) { - defaultNonce = ctPublicFunctions._rest_nonce; - } - - return defaultNonce; -} - /** * Enter point to ApbctCore class * @@ -1528,452 +1493,6 @@ function apbct(params) { .select(params); } -/** - * ApbctXhr - */ -class ApbctXhr { - xhr = new XMLHttpRequest(); - - // Base parameters - method = 'POST'; // HTTP-request type - url = ''; // URL to send the request - async = true; - user = null; // HTTP-authorization username - password = null; // HTTP-authorization password - data = {}; // Data to send - - // Optional params - button = null; // Button that should be disabled when request is performing - spinner = null; // Spinner that should appear when request is in process - progressbar = null; // Progress bar for the current request - context = this; // Context - callback = null; - onErrorCallback = null; - - responseType = 'json'; // Expected data type from server - headers = {}; - timeout = 15000; // Request timeout in milliseconds - - methods_to_convert_data_to_URL = [ - 'GET', - 'HEAD', - ]; - - body = null; - http_code = 0; - status_text = ''; - - // eslint-disable-next-line require-jsdoc - constructor(parameters) { - // Set class properties - for ( let key in parameters ) { - if ( typeof this[key] !== 'undefined' ) { - this[key] = parameters[key]; - } - } - - // Modifying DOM-elements - this.prepare(); - - // Modify URL with data for GET and HEAD requests - if ( Object.keys(this.data).length ) { - this.deleteDoubleJSONEncoding(this.data); - this.convertData(); - } - - if ( ! this.url ) { - console.log('%cXHR%c not URL provided', - 'color: red; font-weight: bold;', 'color: grey; font-weight: normal;'); - return false; - } - - // Configure the request - this.xhr.open(this.method, this.url, this.async, this.user, this.password); - this.setHeaders(); - - this.xhr.responseType = this.responseType; - this.xhr.timeout = this.timeout; - - /* EVENTS */ - // Monitoring status - this.xhr.onreadystatechange = function() { - if (this.isWpNonceError()) { - this.getFreshNonceAndRerunXHR(parameters); - return; - } - this.onReadyStateChange(); - }.bind(this); - - // Run callback - this.xhr.onload = function() { - this.onLoad(); - }.bind(this); - - // On progress - this.xhr.onprogress = function(event) { - this.onProgress(event); - }.bind(this); - - // On error - this.xhr.onerror = function() { - this.onError(); - }.bind(this); - - this.xhr.ontimeout = function() { - this.onTimeout(); - }.bind(this); - - // Send the request - this.xhr.send(this.body); - } - - /** - * prepare - */ - prepare() { - // Disable button - if (this.button) { - this.button.setAttribute('disabled', 'disabled'); - this.button.style.cursor = 'not-allowed'; - } - - // Enable spinner - if (this.spinner) { - this.spinner.style.display = 'inline'; - } - } - - /** - * complete - */ - complete() { - this.http_code = this.xhr.status; - this.status_text = this.xhr.statusText; - - // Disable button - if (this.button) { - this.button.removeAttribute('disabled'); - this.button.style.cursor = 'auto'; - } - - // Enable spinner - if (this.spinner) { - this.spinner.style.display = 'none'; - } - - if ( this.progressbar ) { - this.progressbar.fadeOut('slow'); - } - } - - /** - * onReadyStateChange - */ - onReadyStateChange() { - if (this.on_ready_state_change !== null && typeof this.on_ready_state_change === 'function') { - this.on_ready_state_change(); - } - } - - /** - * @param {object} event - */ - onProgress(event) { - if (this.on_progress !== null && typeof this.on_progress === 'function') { - this.on_progress(); - } - } - - /** - * onError - */ - onError() { - console.log('error'); - - this.complete(); - this.error( - this.http_code, - this.status_text, - ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback(this.status_text); - } - } - - /** - * onTimeout - */ - onTimeout() { - this.complete(); - this.error( - 0, - 'timeout', - ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback('Timeout'); - } - } - - /** - * @return {boolean} - */ - onLoad() { - this.complete(); - - if (this.responseType === 'json' ) { - if (this.xhr.response === null) { - this.error(this.http_code, this.status_text, 'No response'); - return false; - } else if ( typeof this.xhr.response.error !== 'undefined') { - this.error(this.http_code, this.status_text, this.xhr.response.error); - return false; - } - } - - if (this.callback !== null && typeof this.callback === 'function') { - this.callback.call(this.context, this.xhr.response, this.data); - } - } - - /** - * Check if 403 code of WP nonce error - * @return {bool} - */ - isWpNonceError() { - let restErrror = false; - let ajaxErrror = false; - // check rest error - if (this.xhr.readyState == 4) { - restErrror = ( - typeof this.xhr.response === 'object' && this.xhr.response !== null && - this.xhr.response.hasOwnProperty('data') && - this.xhr.response.data.hasOwnProperty('status') && - this.xhr.response.data.status === 403 - ); - ajaxErrror = this.xhr.response === '-1' && this.xhr.status === 403; - } - // todo check AJAX error - return restErrror || ajaxErrror; - } - - /** - * Get the fresh nonce and rerun the initial XHR with params - * @param {[]} initialRequestParams - */ - getFreshNonceAndRerunXHR(initialRequestParams) { - let noncePrev = ''; - - // Check if initialRequestParams['headers']['X-WP-Nonce'] exists. - if ( - initialRequestParams.hasOwnProperty('headers') && - initialRequestParams.headers.hasOwnProperty('X-WP-Nonce') - ) { - noncePrev = initialRequestParams['headers']['X-WP-Nonce']; - } - - // Check if initialRequestParams['data']['_ajax_nonce'] exists. - if ( - initialRequestParams.hasOwnProperty('data') && - initialRequestParams.data.hasOwnProperty('_ajax_nonce') - ) { - noncePrev = initialRequestParams['data']['_ajax_nonce']; - } - - // Nonce is not provided. Exit. - if ( noncePrev === '' ) { - return; - } - - // prepare params for refreshing nonce - let params = {}; - params.method = 'POST'; - params.data = { - 'spbc_remote_call_action': 'get_fresh_wpnonce', - 'plugin_name': 'antispam', - 'nonce_prev': noncePrev, - 'initial_request_params': initialRequestParams, - }; - params.notJson = true; - params.url = ctPublicFunctions._ajax_url; - // this callback will rerun the XHR with initial params - params.callback = function(...args) { - // the refresh result itself - let freshNonceResult = args[0]; - let newRequestParams = false; - // provided initial params - if (args[1] !== undefined && args[1].hasOwnProperty('initial_request_params')) { - newRequestParams = args[1].initial_request_params; - } - if (newRequestParams && freshNonceResult.hasOwnProperty('wpnonce')) { - ctPublicFunctions._fresh_nonce = freshNonceResult.wpnonce; - if (ctPublicFunctions.data__ajax_type === 'rest') { - new ApbctCore().rest(newRequestParams); - } else { - new ApbctCore().ajax(newRequestParams); - } - } - }; - // run the nonce refreshing call - new ApbctXhr(params); - } - - /** - * @param {number} httpCode - * @param {string} statusText - * @param {string} additionalMsg - */ - error(httpCode, statusText, additionalMsg) { - let errorString = ''; - - if ( statusText === 'timeout' ) { - errorString += 'Server response timeout'; - } else if ( httpCode === 200 ) { - if ( statusText === 'parsererror' ) { - errorString += 'Unexpected response from server. See console for details.'; - } else { - errorString += 'Unexpected error. Status: ' + statusText + '.'; - if ( typeof additionalMsg !== 'undefined' ) { - errorString += ' Additional error info: ' + additionalMsg; - } - } - } else if (httpCode === 500) { - errorString += 'Internal server error.'; - } else { - errorString += 'Unexpected response code:' + httpCode; - } - - this.errorOutput( errorString ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback(this.status_text); - } - } - - /** - * @param {string} errorMsg - */ - errorOutput(errorMsg) { - console.log( '%c ctXHR error: %c' + errorMsg, 'color: red;', 'color: grey;' ); - } - - /** - * setHeaders - */ - setHeaders() { - // Set headers if passed - for ( let headerName in this.headers ) { - if ( typeof this.headers[headerName] !== 'undefined' ) { - this.xhr.setRequestHeader(headerName, this.headers[headerName]); - } - } - } - - /** - * @return {string|*} - */ - convertData() { - // GET, HEAD request-type - if ( ~this.methods_to_convert_data_to_URL.indexOf( this.method ) ) { - return this.convertDataToURL(); - - // POST request-type - } else { - return this.convertDataToBody(); - } - } - - /** - * @return {string} - */ - convertDataToURL() { - let paramsAppendix = new URLSearchParams(this.data).toString(); - let paramsPrefix = this.url.match(/^(https?:\/{2})?[a-z0-9.]+\?/) ? '&' : '?'; - this.url += paramsPrefix + paramsAppendix; - - return this.url; - } - - /** - * @return {null} - */ - convertDataToBody() { - this.body = new FormData(); - for (let dataKey in this.data) { - if (Object.hasOwn(this.data, dataKey)) { - this.body.append( - dataKey, - typeof this.data[dataKey] === 'object' ? - JSON.stringify(this.data[dataKey]) : - this.data[dataKey], - ); - } - } - - return this.body; - } - - /** - * Recursive - * - * Recursively decode JSON-encoded properties - * - * @param {object} object - * @return {*} - */ - deleteDoubleJSONEncoding(object) { - if ( typeof object === 'object') { - for (let objectKey in object) { - if (Object.hasOwn(object, objectKey)) { - // Recursion - if ( typeof object[objectKey] === 'object') { - object[objectKey] = this.deleteDoubleJSONEncoding(object[objectKey]); - } - - // Common case (out) - if ( - typeof object[objectKey] === 'string' && - object[objectKey].match(/^[\[{].*?[\]}]$/) !== null // is like JSON - ) { - let parsedValue = JSON.parse(object[objectKey]); - if ( typeof parsedValue === 'object' ) { - object[objectKey] = parsedValue; - } - } - } - } - } - - return object; - } -} -// eslint-disable-next-line require-jsdoc -class ApbctAjax extends ApbctXhr { - // eslint-disable-next-line require-jsdoc - constructor(...args) { - args = args[0]; - args.data._ajax_nonce = selectActualNonce(); - super(args); - } -} -// eslint-disable-next-line require-jsdoc -class ApbctRest extends ApbctXhr { - static default_route = ctPublicFunctions._rest_url + 'cleantalk-antispam/v1/'; - route = ''; - - // eslint-disable-next-line require-jsdoc - constructor(...args) { - args = args[0]; - const nonce = selectActualNonce(); - args.url = ApbctRest.default_route + args.route; - args.headers = { - 'X-WP-Nonce': nonce, - }; - super(args); - } -} - // add hasOwn if (!Object.prototype.hasOwn) { Object.defineProperty(Object.prototype, 'hasOwn', { // eslint-disable-line @@ -2200,28 +1719,17 @@ class ApbctFetchProxyProtection { // eslint-disable-line no-unused-vars * Set init params */ // eslint-disable-next-line no-unused-vars,require-jsdoc -function initParams(gatheringLoaded) { - const ctDate = new Date(); - const headless = navigator.webdriver; +function initLegacyParams(gatheringLoaded) { const screenInfo = ( typeof ApbctGatheringData !== 'undefined' && typeof ApbctGatheringData.prototype.getScreenInfo === 'function' ) ? new ApbctGatheringData().getScreenInfo() : ''; - const initCookies = [ - ['ct_ps_timestamp', Math.floor(new Date().getTime() / 1000)], - ['ct_fkp_timestamp', '0'], - ['ct_pointer_data', '0'], - ['ct_timezone', ctDate.getTimezoneOffset()/60*(-1)], - ['ct_screen_info', screenInfo], - ['apbct_headless', headless], - ]; - apbctLocalStorage.set('ct_ps_timestamp', Math.floor(new Date().getTime() / 1000)); + const initCookies = []; + apbctLocalStorage.set('ct_fkp_timestamp', '0'); apbctLocalStorage.set('ct_pointer_data', '0'); - apbctLocalStorage.set('ct_timezone', ctDate.getTimezoneOffset()/60*(-1)); apbctLocalStorage.set('ct_screen_info', screenInfo); - apbctLocalStorage.set('apbct_headless', headless); if ( ctPublic.data__cookies_type !== 'native' ) { initCookies.push(['apbct_visible_fields', '0']); @@ -2273,164 +1781,16 @@ function initParams(gatheringLoaded) { } } - if (apbctLocalStorage.isSet('ct_checkjs')) { - initCookies.push(['ct_checkjs', apbctLocalStorage.get('ct_checkjs')]); - } else { - initCookies.push(['ct_checkjs', 0]); - } - if (gatheringLoaded) { initCookies.push(['ct_gathering_loaded', gatheringLoaded]); + initCookies.push(['ct_fkp_timestamp', '0']); + initCookies.push(['ct_pointer_data', '0']); + initCookies.push(['ct_screen_info', screenInfo]); } ctSetCookie(initCookies); } -/** - * @param {object|array|string} cookies - * @param {object|array|string} value - * @param {string|number} expires - */ -// eslint-disable-next-line no-unused-vars,require-jsdoc -function ctSetCookie( cookies, value, expires='') { - let listOfCookieNamesToForceAlt = [ - 'ct_sfw_pass_key', - 'ct_sfw_passed', - 'apbct_antibot', - 'apbct_anticrawler_passed', - 'apbct_bot_detector_exist', - 'apbct_antiflood_passed', - 'apbct_email_encoder_passed', - ]; - - let skipAlt = false; - - if ( typeof cookies === 'string') { - skipAlt = cookies === 'ct_pointer_data'; - if ( typeof value === 'string' || typeof value === 'number' ) { - cookies = [[cookies, value, expires]]; - } - } - - // Cookies disabled - if ( ctPublicFunctions.data__cookies_type === 'none' ) { - let forcedAltCookiesSet = []; - cookies.forEach( function(item) { - if (listOfCookieNamesToForceAlt.indexOf(item[0]) !== -1) { - forcedAltCookiesSet.push(item); - } else { - apbctLocalStorage.set(item[0], item[1]); - } - }); - - // if cookies from list found use alt cookies for this selection set - if ( forcedAltCookiesSet.length > 0 ) { - ctSetAlternativeCookie(forcedAltCookiesSet); - } - - // If problem integration forms detected use alt cookies for whole cookies set - if ( ctPublic.force_alt_cookies && !skipAlt) { - // do it just once - ctSetAlternativeCookie(cookies, {forceAltCookies: true}); - } else { - ctNoCookieAttachHiddenFieldsToForms(); - } - - // Using traditional cookies - } else if ( ctPublicFunctions.data__cookies_type === 'native' ) { - // If problem integration forms detected use alt cookies for whole cookies set - if ( ctPublic.force_alt_cookies && !skipAlt) { - // do it just once - ctSetAlternativeCookie(cookies, {forceAltCookies: true}); - } - cookies.forEach( function(item) { - const _expires = typeof item[2] !== 'undefined' ? 'expires=' + item[2] + '; ' : ''; - let ctSecure = location.protocol === 'https:' ? '; secure' : ''; - document.cookie = ctPublicFunctions.cookiePrefix + - item[0] + - '=' + - encodeURIComponent(item[1]) + - '; ' + - _expires + - 'path=/; samesite=lax' + - ctSecure; - }); - - // Using alternative cookies - } else if ( ctPublicFunctions.data__cookies_type === 'alternative' && !skipAlt ) { - ctSetAlternativeCookie(cookies); - } -} - -// eslint-disable-next-line require-jsdoc -function ctSetAlternativeCookie(cookies, params) { - if (typeof (getJavascriptClientData) === 'function' ) { - // reprocess already gained cookies data - if (Array.isArray(cookies)) { - cookies = getJavascriptClientData(cookies); - } - } else if (!+ctPublic.bot_detector_enabled) { - console.log('APBCT ERROR: getJavascriptClientData() is not loaded'); - } - - // if cookies is array, convert it to object - if (Array.isArray(cookies) && cookies[0] && cookies[0][0] === 'apbct_bot_detector_exist') { - cookies = {apbct_bot_detector_exist: cookies[0][1]}; - } - // Only try to parse if cookies is a string (JSON) - if (typeof cookies === 'string') { - try { - cookies = JSON.parse(cookies); - } catch (e) { - console.log('APBCT ERROR: JSON parse error:' + e); - return; - } - } - - const callback = params && params.callback || null; - const onErrorCallback = params && params.onErrorCallback || null; - - if ( params && params.forceAltCookies ) { - cookies.apbct_force_alt_cookies = true; - } - - // Using REST API handler - if ( ctPublicFunctions.data__ajax_type === 'rest' ) { - // fix for url encoded cookie apbct_pixel_url on REST route - if (typeof cookies.apbct_pixel_url === 'string' && - cookies.apbct_pixel_url.indexOf('%3A') !== -1 - ) { - cookies.apbct_pixel_url = decodeURIComponent(cookies.apbct_pixel_url); - } - apbct_public_sendREST( - 'alt_sessions', - { - method: 'POST', - data: {cookies: cookies}, - callback: callback, - onErrorCallback: onErrorCallback, - }, - ); - - // Using AJAX request and handler - } else if ( ctPublicFunctions.data__ajax_type === 'admin_ajax' ) { - apbct_public_sendAJAX( - { - action: 'apbct_alt_session__save__AJAX', - cookies: cookies, - }, - { - notJson: 1, - callback: callback, - onErrorCallback: onErrorCallback, - beforeSend: function(xhr) { - xhr.setRequestHeader('X-Robots-Tag', 'noindex, nofollow'); - }, - }, - ); - } -} - /** * Get cookie by name * @param name @@ -2461,55 +1821,6 @@ function ctDeleteCookie(cookieName) { } } -// eslint-disable-next-line require-jsdoc,camelcase -function apbct_public_sendAJAX(data, params, obj) { - // Default params - let _params = []; - _params['callback'] = params.callback || null; - _params['onErrorCallback'] = params.onErrorCallback || null; - _params['callback_context'] = params.callback_context || null; - _params['callback_params'] = params.callback_params || null; - _params['async'] = params.async || true; - _params['notJson'] = params.notJson || null; - _params['responseType']= params.notJson ? 'text' : 'json'; - _params['timeout'] = params.timeout || 15000; - _params['obj'] = obj || null; - _params['button'] = params.button || null; - _params['spinner'] = params.spinner || null; - _params['progressbar'] = params.progressbar || null; - _params['silent'] = params.silent || null; - _params['no_nonce'] = params.no_nonce || null; - _params['data'] = data; - _params['url'] = ctPublicFunctions._ajax_url; - const nonce = selectActualNonce(); - - if (typeof (data) === 'string') { - if ( ! _params['no_nonce'] ) { - _params['data'] = _params['data'] + '&_ajax_nonce=' + nonce; - } - _params['data'] = _params['data'] + '&no_cache=' + Math.random(); - } else { - if ( ! _params['no_nonce'] ) { - _params['data']._ajax_nonce = nonce; - } - _params['data'].no_cache = Math.random(); - } - - new ApbctCore().ajax(_params); -} - -// eslint-disable-next-line require-jsdoc,camelcase -function apbct_public_sendREST( route, params ) { - let _params = []; - _params['route'] = route; - _params['callback'] = params.callback || null; - _params['onErrorCallback'] = params.onErrorCallback || null; - _params['data'] = params.data || []; - _params['method'] = params.method || 'POST'; - - new ApbctCore().rest(_params); -} - // eslint-disable-next-line require-jsdoc,camelcase,no-unused-vars function apbct_attach_event_handler(elem, event, callback) { if (typeof window.addEventListener === 'function') elem.addEventListener(event, callback); @@ -2553,130 +1864,6 @@ function removeDoubleJsonEncoding(object) { // eslint-disable-line no-unused-var return object; } -/** - * @return {boolean|*} - */ -function ctGetPageForms() { // eslint-disable-line no-unused-vars - let forms = document.forms; - if (forms) { - return forms; - } - return false; -} - -// eslint-disable-next-line camelcase,require-jsdoc,no-unused-vars -function apbct_js_keys__set_input_value(result, data, params, obj) { - if ( document.querySelectorAll('[name^=ct_checkjs]').length > 0 ) { - let elements = document.querySelectorAll('[name^=ct_checkjs]'); - for ( let i = 0; i < elements.length; i++ ) { - elements[i].value = result.js_key; - } - } -} - -let apbctLocalStorage = { - get: function(key, property) { - if ( typeof property === 'undefined' ) { - property = 'value'; - } - const storageValue = localStorage.getItem(key); - if ( storageValue !== null ) { - try { - const json = JSON.parse(storageValue); - if ( json.hasOwnProperty(property) ) { - try { - const parsed = JSON.parse( json[property] ); - if ( parsed !== null && typeof parsed === 'object' ) { - return json[property].toString(); - } - return parsed; - } catch (e) { - return json[property].toString(); - } - } else { - return json; - } - } catch (e) { - return storageValue; - } - } - return false; - }, - set: function(key, value, isJson = true) { - if (isJson) { - let objToSave = {'value': JSON.stringify(value), 'timestamp': Math.floor(new Date().getTime() / 1000)}; - localStorage.setItem(key, JSON.stringify(objToSave)); - } else { - localStorage.setItem(key, value); - } - }, - isAlive: function(key, maxLifetime) { - if ( typeof maxLifetime === 'undefined' ) { - maxLifetime = 86400; - } - const keyTimestamp = this.get(key, 'timestamp'); - return keyTimestamp + maxLifetime > Math.floor(new Date().getTime() / 1000); - }, - isSet: function(key) { - return localStorage.getItem(key) !== null; - }, - delete: function(key) { - localStorage.removeItem(key); - }, - getCleanTalkData: function() { - let data = {}; - for (let i=0; i 0 - ) { - return ctPublicFunctions._fresh_nonce; - } - // select from default rest/ajax nonces - if ( - ctPublicFunctions.data__ajax_type === 'admin_ajax' && - ctPublicFunctions.hasOwnProperty('_ajax_nonce') && - typeof ctPublicFunctions._ajax_nonce === 'string' && - ctPublicFunctions._ajax_nonce.length > 0 - ) { - defaultNonce = ctPublicFunctions._ajax_nonce; - } - if ( - ctPublicFunctions.data__ajax_type === 'rest' && - ctPublicFunctions.hasOwnProperty('_rest_nonce') && - typeof ctPublicFunctions._rest_nonce === 'string' && - ctPublicFunctions._rest_nonce.length > 0 - ) { - defaultNonce = ctPublicFunctions._rest_nonce; - } - - return defaultNonce; -} - /** * Enter point to ApbctCore class * @@ -1528,452 +1493,6 @@ function apbct(params) { .select(params); } -/** - * ApbctXhr - */ -class ApbctXhr { - xhr = new XMLHttpRequest(); - - // Base parameters - method = 'POST'; // HTTP-request type - url = ''; // URL to send the request - async = true; - user = null; // HTTP-authorization username - password = null; // HTTP-authorization password - data = {}; // Data to send - - // Optional params - button = null; // Button that should be disabled when request is performing - spinner = null; // Spinner that should appear when request is in process - progressbar = null; // Progress bar for the current request - context = this; // Context - callback = null; - onErrorCallback = null; - - responseType = 'json'; // Expected data type from server - headers = {}; - timeout = 15000; // Request timeout in milliseconds - - methods_to_convert_data_to_URL = [ - 'GET', - 'HEAD', - ]; - - body = null; - http_code = 0; - status_text = ''; - - // eslint-disable-next-line require-jsdoc - constructor(parameters) { - // Set class properties - for ( let key in parameters ) { - if ( typeof this[key] !== 'undefined' ) { - this[key] = parameters[key]; - } - } - - // Modifying DOM-elements - this.prepare(); - - // Modify URL with data for GET and HEAD requests - if ( Object.keys(this.data).length ) { - this.deleteDoubleJSONEncoding(this.data); - this.convertData(); - } - - if ( ! this.url ) { - console.log('%cXHR%c not URL provided', - 'color: red; font-weight: bold;', 'color: grey; font-weight: normal;'); - return false; - } - - // Configure the request - this.xhr.open(this.method, this.url, this.async, this.user, this.password); - this.setHeaders(); - - this.xhr.responseType = this.responseType; - this.xhr.timeout = this.timeout; - - /* EVENTS */ - // Monitoring status - this.xhr.onreadystatechange = function() { - if (this.isWpNonceError()) { - this.getFreshNonceAndRerunXHR(parameters); - return; - } - this.onReadyStateChange(); - }.bind(this); - - // Run callback - this.xhr.onload = function() { - this.onLoad(); - }.bind(this); - - // On progress - this.xhr.onprogress = function(event) { - this.onProgress(event); - }.bind(this); - - // On error - this.xhr.onerror = function() { - this.onError(); - }.bind(this); - - this.xhr.ontimeout = function() { - this.onTimeout(); - }.bind(this); - - // Send the request - this.xhr.send(this.body); - } - - /** - * prepare - */ - prepare() { - // Disable button - if (this.button) { - this.button.setAttribute('disabled', 'disabled'); - this.button.style.cursor = 'not-allowed'; - } - - // Enable spinner - if (this.spinner) { - this.spinner.style.display = 'inline'; - } - } - - /** - * complete - */ - complete() { - this.http_code = this.xhr.status; - this.status_text = this.xhr.statusText; - - // Disable button - if (this.button) { - this.button.removeAttribute('disabled'); - this.button.style.cursor = 'auto'; - } - - // Enable spinner - if (this.spinner) { - this.spinner.style.display = 'none'; - } - - if ( this.progressbar ) { - this.progressbar.fadeOut('slow'); - } - } - - /** - * onReadyStateChange - */ - onReadyStateChange() { - if (this.on_ready_state_change !== null && typeof this.on_ready_state_change === 'function') { - this.on_ready_state_change(); - } - } - - /** - * @param {object} event - */ - onProgress(event) { - if (this.on_progress !== null && typeof this.on_progress === 'function') { - this.on_progress(); - } - } - - /** - * onError - */ - onError() { - console.log('error'); - - this.complete(); - this.error( - this.http_code, - this.status_text, - ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback(this.status_text); - } - } - - /** - * onTimeout - */ - onTimeout() { - this.complete(); - this.error( - 0, - 'timeout', - ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback('Timeout'); - } - } - - /** - * @return {boolean} - */ - onLoad() { - this.complete(); - - if (this.responseType === 'json' ) { - if (this.xhr.response === null) { - this.error(this.http_code, this.status_text, 'No response'); - return false; - } else if ( typeof this.xhr.response.error !== 'undefined') { - this.error(this.http_code, this.status_text, this.xhr.response.error); - return false; - } - } - - if (this.callback !== null && typeof this.callback === 'function') { - this.callback.call(this.context, this.xhr.response, this.data); - } - } - - /** - * Check if 403 code of WP nonce error - * @return {bool} - */ - isWpNonceError() { - let restErrror = false; - let ajaxErrror = false; - // check rest error - if (this.xhr.readyState == 4) { - restErrror = ( - typeof this.xhr.response === 'object' && this.xhr.response !== null && - this.xhr.response.hasOwnProperty('data') && - this.xhr.response.data.hasOwnProperty('status') && - this.xhr.response.data.status === 403 - ); - ajaxErrror = this.xhr.response === '-1' && this.xhr.status === 403; - } - // todo check AJAX error - return restErrror || ajaxErrror; - } - - /** - * Get the fresh nonce and rerun the initial XHR with params - * @param {[]} initialRequestParams - */ - getFreshNonceAndRerunXHR(initialRequestParams) { - let noncePrev = ''; - - // Check if initialRequestParams['headers']['X-WP-Nonce'] exists. - if ( - initialRequestParams.hasOwnProperty('headers') && - initialRequestParams.headers.hasOwnProperty('X-WP-Nonce') - ) { - noncePrev = initialRequestParams['headers']['X-WP-Nonce']; - } - - // Check if initialRequestParams['data']['_ajax_nonce'] exists. - if ( - initialRequestParams.hasOwnProperty('data') && - initialRequestParams.data.hasOwnProperty('_ajax_nonce') - ) { - noncePrev = initialRequestParams['data']['_ajax_nonce']; - } - - // Nonce is not provided. Exit. - if ( noncePrev === '' ) { - return; - } - - // prepare params for refreshing nonce - let params = {}; - params.method = 'POST'; - params.data = { - 'spbc_remote_call_action': 'get_fresh_wpnonce', - 'plugin_name': 'antispam', - 'nonce_prev': noncePrev, - 'initial_request_params': initialRequestParams, - }; - params.notJson = true; - params.url = ctPublicFunctions._ajax_url; - // this callback will rerun the XHR with initial params - params.callback = function(...args) { - // the refresh result itself - let freshNonceResult = args[0]; - let newRequestParams = false; - // provided initial params - if (args[1] !== undefined && args[1].hasOwnProperty('initial_request_params')) { - newRequestParams = args[1].initial_request_params; - } - if (newRequestParams && freshNonceResult.hasOwnProperty('wpnonce')) { - ctPublicFunctions._fresh_nonce = freshNonceResult.wpnonce; - if (ctPublicFunctions.data__ajax_type === 'rest') { - new ApbctCore().rest(newRequestParams); - } else { - new ApbctCore().ajax(newRequestParams); - } - } - }; - // run the nonce refreshing call - new ApbctXhr(params); - } - - /** - * @param {number} httpCode - * @param {string} statusText - * @param {string} additionalMsg - */ - error(httpCode, statusText, additionalMsg) { - let errorString = ''; - - if ( statusText === 'timeout' ) { - errorString += 'Server response timeout'; - } else if ( httpCode === 200 ) { - if ( statusText === 'parsererror' ) { - errorString += 'Unexpected response from server. See console for details.'; - } else { - errorString += 'Unexpected error. Status: ' + statusText + '.'; - if ( typeof additionalMsg !== 'undefined' ) { - errorString += ' Additional error info: ' + additionalMsg; - } - } - } else if (httpCode === 500) { - errorString += 'Internal server error.'; - } else { - errorString += 'Unexpected response code:' + httpCode; - } - - this.errorOutput( errorString ); - - if (this.onErrorCallback !== null && typeof this.onErrorCallback === 'function') { - this.onErrorCallback(this.status_text); - } - } - - /** - * @param {string} errorMsg - */ - errorOutput(errorMsg) { - console.log( '%c ctXHR error: %c' + errorMsg, 'color: red;', 'color: grey;' ); - } - - /** - * setHeaders - */ - setHeaders() { - // Set headers if passed - for ( let headerName in this.headers ) { - if ( typeof this.headers[headerName] !== 'undefined' ) { - this.xhr.setRequestHeader(headerName, this.headers[headerName]); - } - } - } - - /** - * @return {string|*} - */ - convertData() { - // GET, HEAD request-type - if ( ~this.methods_to_convert_data_to_URL.indexOf( this.method ) ) { - return this.convertDataToURL(); - - // POST request-type - } else { - return this.convertDataToBody(); - } - } - - /** - * @return {string} - */ - convertDataToURL() { - let paramsAppendix = new URLSearchParams(this.data).toString(); - let paramsPrefix = this.url.match(/^(https?:\/{2})?[a-z0-9.]+\?/) ? '&' : '?'; - this.url += paramsPrefix + paramsAppendix; - - return this.url; - } - - /** - * @return {null} - */ - convertDataToBody() { - this.body = new FormData(); - for (let dataKey in this.data) { - if (Object.hasOwn(this.data, dataKey)) { - this.body.append( - dataKey, - typeof this.data[dataKey] === 'object' ? - JSON.stringify(this.data[dataKey]) : - this.data[dataKey], - ); - } - } - - return this.body; - } - - /** - * Recursive - * - * Recursively decode JSON-encoded properties - * - * @param {object} object - * @return {*} - */ - deleteDoubleJSONEncoding(object) { - if ( typeof object === 'object') { - for (let objectKey in object) { - if (Object.hasOwn(object, objectKey)) { - // Recursion - if ( typeof object[objectKey] === 'object') { - object[objectKey] = this.deleteDoubleJSONEncoding(object[objectKey]); - } - - // Common case (out) - if ( - typeof object[objectKey] === 'string' && - object[objectKey].match(/^[\[{].*?[\]}]$/) !== null // is like JSON - ) { - let parsedValue = JSON.parse(object[objectKey]); - if ( typeof parsedValue === 'object' ) { - object[objectKey] = parsedValue; - } - } - } - } - } - - return object; - } -} -// eslint-disable-next-line require-jsdoc -class ApbctAjax extends ApbctXhr { - // eslint-disable-next-line require-jsdoc - constructor(...args) { - args = args[0]; - args.data._ajax_nonce = selectActualNonce(); - super(args); - } -} -// eslint-disable-next-line require-jsdoc -class ApbctRest extends ApbctXhr { - static default_route = ctPublicFunctions._rest_url + 'cleantalk-antispam/v1/'; - route = ''; - - // eslint-disable-next-line require-jsdoc - constructor(...args) { - args = args[0]; - const nonce = selectActualNonce(); - args.url = ApbctRest.default_route + args.route; - args.headers = { - 'X-WP-Nonce': nonce, - }; - super(args); - } -} - // add hasOwn if (!Object.prototype.hasOwn) { Object.defineProperty(Object.prototype, 'hasOwn', { // eslint-disable-line @@ -2200,28 +1719,17 @@ class ApbctFetchProxyProtection { // eslint-disable-line no-unused-vars * Set init params */ // eslint-disable-next-line no-unused-vars,require-jsdoc -function initParams(gatheringLoaded) { - const ctDate = new Date(); - const headless = navigator.webdriver; +function initLegacyParams(gatheringLoaded) { const screenInfo = ( typeof ApbctGatheringData !== 'undefined' && typeof ApbctGatheringData.prototype.getScreenInfo === 'function' ) ? new ApbctGatheringData().getScreenInfo() : ''; - const initCookies = [ - ['ct_ps_timestamp', Math.floor(new Date().getTime() / 1000)], - ['ct_fkp_timestamp', '0'], - ['ct_pointer_data', '0'], - ['ct_timezone', ctDate.getTimezoneOffset()/60*(-1)], - ['ct_screen_info', screenInfo], - ['apbct_headless', headless], - ]; - apbctLocalStorage.set('ct_ps_timestamp', Math.floor(new Date().getTime() / 1000)); + const initCookies = []; + apbctLocalStorage.set('ct_fkp_timestamp', '0'); apbctLocalStorage.set('ct_pointer_data', '0'); - apbctLocalStorage.set('ct_timezone', ctDate.getTimezoneOffset()/60*(-1)); apbctLocalStorage.set('ct_screen_info', screenInfo); - apbctLocalStorage.set('apbct_headless', headless); if ( ctPublic.data__cookies_type !== 'native' ) { initCookies.push(['apbct_visible_fields', '0']); @@ -2273,164 +1781,16 @@ function initParams(gatheringLoaded) { } } - if (apbctLocalStorage.isSet('ct_checkjs')) { - initCookies.push(['ct_checkjs', apbctLocalStorage.get('ct_checkjs')]); - } else { - initCookies.push(['ct_checkjs', 0]); - } - if (gatheringLoaded) { initCookies.push(['ct_gathering_loaded', gatheringLoaded]); + initCookies.push(['ct_fkp_timestamp', '0']); + initCookies.push(['ct_pointer_data', '0']); + initCookies.push(['ct_screen_info', screenInfo]); } ctSetCookie(initCookies); } -/** - * @param {object|array|string} cookies - * @param {object|array|string} value - * @param {string|number} expires - */ -// eslint-disable-next-line no-unused-vars,require-jsdoc -function ctSetCookie( cookies, value, expires='') { - let listOfCookieNamesToForceAlt = [ - 'ct_sfw_pass_key', - 'ct_sfw_passed', - 'apbct_antibot', - 'apbct_anticrawler_passed', - 'apbct_bot_detector_exist', - 'apbct_antiflood_passed', - 'apbct_email_encoder_passed', - ]; - - let skipAlt = false; - - if ( typeof cookies === 'string') { - skipAlt = cookies === 'ct_pointer_data'; - if ( typeof value === 'string' || typeof value === 'number' ) { - cookies = [[cookies, value, expires]]; - } - } - - // Cookies disabled - if ( ctPublicFunctions.data__cookies_type === 'none' ) { - let forcedAltCookiesSet = []; - cookies.forEach( function(item) { - if (listOfCookieNamesToForceAlt.indexOf(item[0]) !== -1) { - forcedAltCookiesSet.push(item); - } else { - apbctLocalStorage.set(item[0], item[1]); - } - }); - - // if cookies from list found use alt cookies for this selection set - if ( forcedAltCookiesSet.length > 0 ) { - ctSetAlternativeCookie(forcedAltCookiesSet); - } - - // If problem integration forms detected use alt cookies for whole cookies set - if ( ctPublic.force_alt_cookies && !skipAlt) { - // do it just once - ctSetAlternativeCookie(cookies, {forceAltCookies: true}); - } else { - ctNoCookieAttachHiddenFieldsToForms(); - } - - // Using traditional cookies - } else if ( ctPublicFunctions.data__cookies_type === 'native' ) { - // If problem integration forms detected use alt cookies for whole cookies set - if ( ctPublic.force_alt_cookies && !skipAlt) { - // do it just once - ctSetAlternativeCookie(cookies, {forceAltCookies: true}); - } - cookies.forEach( function(item) { - const _expires = typeof item[2] !== 'undefined' ? 'expires=' + item[2] + '; ' : ''; - let ctSecure = location.protocol === 'https:' ? '; secure' : ''; - document.cookie = ctPublicFunctions.cookiePrefix + - item[0] + - '=' + - encodeURIComponent(item[1]) + - '; ' + - _expires + - 'path=/; samesite=lax' + - ctSecure; - }); - - // Using alternative cookies - } else if ( ctPublicFunctions.data__cookies_type === 'alternative' && !skipAlt ) { - ctSetAlternativeCookie(cookies); - } -} - -// eslint-disable-next-line require-jsdoc -function ctSetAlternativeCookie(cookies, params) { - if (typeof (getJavascriptClientData) === 'function' ) { - // reprocess already gained cookies data - if (Array.isArray(cookies)) { - cookies = getJavascriptClientData(cookies); - } - } else if (!+ctPublic.bot_detector_enabled) { - console.log('APBCT ERROR: getJavascriptClientData() is not loaded'); - } - - // if cookies is array, convert it to object - if (Array.isArray(cookies) && cookies[0] && cookies[0][0] === 'apbct_bot_detector_exist') { - cookies = {apbct_bot_detector_exist: cookies[0][1]}; - } - // Only try to parse if cookies is a string (JSON) - if (typeof cookies === 'string') { - try { - cookies = JSON.parse(cookies); - } catch (e) { - console.log('APBCT ERROR: JSON parse error:' + e); - return; - } - } - - const callback = params && params.callback || null; - const onErrorCallback = params && params.onErrorCallback || null; - - if ( params && params.forceAltCookies ) { - cookies.apbct_force_alt_cookies = true; - } - - // Using REST API handler - if ( ctPublicFunctions.data__ajax_type === 'rest' ) { - // fix for url encoded cookie apbct_pixel_url on REST route - if (typeof cookies.apbct_pixel_url === 'string' && - cookies.apbct_pixel_url.indexOf('%3A') !== -1 - ) { - cookies.apbct_pixel_url = decodeURIComponent(cookies.apbct_pixel_url); - } - apbct_public_sendREST( - 'alt_sessions', - { - method: 'POST', - data: {cookies: cookies}, - callback: callback, - onErrorCallback: onErrorCallback, - }, - ); - - // Using AJAX request and handler - } else if ( ctPublicFunctions.data__ajax_type === 'admin_ajax' ) { - apbct_public_sendAJAX( - { - action: 'apbct_alt_session__save__AJAX', - cookies: cookies, - }, - { - notJson: 1, - callback: callback, - onErrorCallback: onErrorCallback, - beforeSend: function(xhr) { - xhr.setRequestHeader('X-Robots-Tag', 'noindex, nofollow'); - }, - }, - ); - } -} - /** * Get cookie by name * @param name @@ -2461,55 +1821,6 @@ function ctDeleteCookie(cookieName) { } } -// eslint-disable-next-line require-jsdoc,camelcase -function apbct_public_sendAJAX(data, params, obj) { - // Default params - let _params = []; - _params['callback'] = params.callback || null; - _params['onErrorCallback'] = params.onErrorCallback || null; - _params['callback_context'] = params.callback_context || null; - _params['callback_params'] = params.callback_params || null; - _params['async'] = params.async || true; - _params['notJson'] = params.notJson || null; - _params['responseType']= params.notJson ? 'text' : 'json'; - _params['timeout'] = params.timeout || 15000; - _params['obj'] = obj || null; - _params['button'] = params.button || null; - _params['spinner'] = params.spinner || null; - _params['progressbar'] = params.progressbar || null; - _params['silent'] = params.silent || null; - _params['no_nonce'] = params.no_nonce || null; - _params['data'] = data; - _params['url'] = ctPublicFunctions._ajax_url; - const nonce = selectActualNonce(); - - if (typeof (data) === 'string') { - if ( ! _params['no_nonce'] ) { - _params['data'] = _params['data'] + '&_ajax_nonce=' + nonce; - } - _params['data'] = _params['data'] + '&no_cache=' + Math.random(); - } else { - if ( ! _params['no_nonce'] ) { - _params['data']._ajax_nonce = nonce; - } - _params['data'].no_cache = Math.random(); - } - - new ApbctCore().ajax(_params); -} - -// eslint-disable-next-line require-jsdoc,camelcase -function apbct_public_sendREST( route, params ) { - let _params = []; - _params['route'] = route; - _params['callback'] = params.callback || null; - _params['onErrorCallback'] = params.onErrorCallback || null; - _params['data'] = params.data || []; - _params['method'] = params.method || 'POST'; - - new ApbctCore().rest(_params); -} - // eslint-disable-next-line require-jsdoc,camelcase,no-unused-vars function apbct_attach_event_handler(elem, event, callback) { if (typeof window.addEventListener === 'function') elem.addEventListener(event, callback); @@ -2553,130 +1864,6 @@ function removeDoubleJsonEncoding(object) { // eslint-disable-line no-unused-var return object; } -/** - * @return {boolean|*} - */ -function ctGetPageForms() { // eslint-disable-line no-unused-vars - let forms = document.forms; - if (forms) { - return forms; - } - return false; -} - -// eslint-disable-next-line camelcase,require-jsdoc,no-unused-vars -function apbct_js_keys__set_input_value(result, data, params, obj) { - if ( document.querySelectorAll('[name^=ct_checkjs]').length > 0 ) { - let elements = document.querySelectorAll('[name^=ct_checkjs]'); - for ( let i = 0; i < elements.length; i++ ) { - elements[i].value = result.js_key; - } - } -} - -let apbctLocalStorage = { - get: function(key, property) { - if ( typeof property === 'undefined' ) { - property = 'value'; - } - const storageValue = localStorage.getItem(key); - if ( storageValue !== null ) { - try { - const json = JSON.parse(storageValue); - if ( json.hasOwnProperty(property) ) { - try { - const parsed = JSON.parse( json[property] ); - if ( parsed !== null && typeof parsed === 'object' ) { - return json[property].toString(); - } - return parsed; - } catch (e) { - return json[property].toString(); - } - } else { - return json; - } - } catch (e) { - return storageValue; - } - } - return false; - }, - set: function(key, value, isJson = true) { - if (isJson) { - let objToSave = {'value': JSON.stringify(value), 'timestamp': Math.floor(new Date().getTime() / 1000)}; - localStorage.setItem(key, JSON.stringify(objToSave)); - } else { - localStorage.setItem(key, value); - } - }, - isAlive: function(key, maxLifetime) { - if ( typeof maxLifetime === 'undefined' ) { - maxLifetime = 86400; - } - const keyTimestamp = this.get(key, 'timestamp'); - return keyTimestamp + maxLifetime > Math.floor(new Date().getTime() / 1000); - }, - isSet: function(key) { - return localStorage.getItem(key) !== null; - }, - delete: function(key) { - localStorage.removeItem(key); - }, - getCleanTalkData: function() { - let data = {}; - for (let i=0; i 0) { + if (forms && forms.length > 0) { for (let i = 0; i < forms.length; i++) { // handle only inputs and textareas const handledFormFields = forms[i].querySelectorAll('input,textarea'); @@ -6914,29 +6028,7 @@ class ApbctBrowserState { } } -/** - * Get the browser state as a key/value pair to attach it to an intercepted request. - * @return {{key: string, value: string}|false} False if there is nothing to attach. - */ -function apbctGetBrowserStatePair() { // eslint-disable-line no-unused-vars - try { - ApbctBrowserState.detectScripts(); - let state = ApbctBrowserState.asDTO(); - if ( ApbctBrowserState.botdLogicLoaded ) { - const transportEnabled = localStorage.getItem(ApbctBrowserState.TRANSPORT_ENABLED_SIGN_KEY) === '1'; - if (transportEnabled) { - state.frontend_data_log = ApbctBrowserState.getFrontendDataLog(); - } else { - state.transport_enabled = 0; - } - } else { - state.frontend_data_log = ApbctBrowserState.getFrontendDataLog(); - } - return {key: ApbctBrowserState.STATE_KEY, value: JSON.stringify(state)}; - } catch (e) { - return false; - } -} + let ctCheckedEmails = {}; let ctCheckedEmailsExist = {}; diff --git a/js/public-2-gathering-data.min.js b/js/public-2-gathering-data.min.js index 22402fcd2..bf200cc8b 100644 --- a/js/public-2-gathering-data.min.js +++ b/js/public-2-gathering-data.min.js @@ -1,2 +1,2 @@ -class ApbctGatheringData{setSessionId(){var t;apbctSessionStorage.isSet("apbct_session_id")?apbctLocalStorage.set("apbct_page_hits",Number(apbctLocalStorage.get("apbct_page_hits"))+1):(t=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(2,10),apbctSessionStorage.set("apbct_session_id",t,!1),apbctLocalStorage.set("apbct_page_hits",1),document.referrer&&new URL(document.referrer).host!==location.host&&apbctSessionStorage.set("apbct_site_referer",document.referrer,!1))}writeReferrersToSessionStorage(){var t=apbctSessionStorage.get("apbct_session_current_page");!1!==t&&document.location.href!==t&&apbctSessionStorage.set("apbct_prev_referer",t,!1),apbctSessionStorage.set("apbct_session_current_page",document.location.href,!1)}setCookiesType(){var t=apbctLocalStorage.get("ct_cookies_type");t&&t===ctPublic.data__cookies_type||(apbctLocalStorage.set("ct_cookies_type",ctPublic.data__cookies_type),apbctLocalStorage.delete("ct_mouse_moved"),apbctLocalStorage.delete("ct_has_scrolled"))}startFieldsListening(){"alternative"!==ctPublic.data__cookies_type&&(this.startFieldsListening(),setTimeout(this.startFieldsListening,1e3))}listenAutocomplete(){window.addEventListener("animationstart",this.apbctOnAnimationStart,!0),window.addEventListener("input",this.apbctOnInput,!0)}gatheringTypoData(){document.ctTypoData=new CTTypoData,document.ctTypoData.gatheringFields(),document.ctTypoData.setListeners()}gatheringMouseData(){new ApbctCollectingUserMouseActivity}getScreenInfo(){var t=document.documentElement,e=document.body,e={scrollWidth:t.scrollWidth,bodyScrollHeight:e.scrollHeight,docScrollHeight:t.scrollHeight,bodyOffsetHeight:e.offsetHeight,docOffsetHeight:t.offsetHeight,bodyClientHeight:e.clientHeight,docClientHeight:t.clientHeight,docClientWidth:t.clientWidth};return JSON.stringify({fullWidth:e.scrollWidth,fullHeight:Math.max(e.bodyScrollHeight,e.docScrollHeight,e.bodyOffsetHeight,e.docOffsetHeight,e.bodyClientHeight,e.docClientHeight),visibleWidth:e.docClientWidth,visibleHeight:e.docClientHeight})}restartFieldsListening(){apbctLocalStorage.isSet("ct_has_input_focused")||apbctLocalStorage.isSet("ct_has_key_up")||this.startFieldsListening()}startFieldsListening(){if(!apbctLocalStorage.isSet("ct_has_key_up")&&!apbctLocalStorage.get("ct_has_key_up")||!apbctLocalStorage.isSet("ct_has_input_focused")&&!apbctLocalStorage.get("ct_has_input_focused")||"native"!==ctPublic.data__cookies_type||void 0===ctGetCookie("ct_has_input_focused")||void 0===ctGetCookie("ct_has_key_up")){var e=ctGetPageForms();if(ctPublic.handled_fields=[],0{this.checkElementInForms(t,"addClicks")}),this.elementBody.addEventListener("mouseup",t=>{"Range"==document.getSelection().type.toString()&&this.addSelected()}),this.elementBody.addEventListener("mousemove",t=>{this.checkElementInForms(t,"trackMouseMovement")})}checkElementInForms(e,t){let c;for(let t=0;t{this.data.push(Object.assign({},this.fieldData))})}setListeners(){this.fields.forEach((t,e)=>{t.addEventListener("paste",()=>{this.data[e].isUseBuffer=!0})}),this.fields.forEach((t,e)=>{t.addEventListener("onautocomplete",()=>{this.data[e].isAutoFill=!0})}),this.fields.forEach((t,c)=>{t.addEventListener("input",()=>{this.data[c].countOfKey++;var t,e=+new Date;1===this.data[c].countOfKey?(this.data[c].lastKeyTimestamp=e,this.data[c].firstKeyTimestamp=e):(t=e-this.data[c].lastKeyTimestamp,2===this.data[c].countOfKey?(this.data[c].lastKeyTimestamp=e,this.data[c].lastDelta=t):2{this.checkElementInForms(t,"addClicks")}),this.elementBody.addEventListener("mouseup",t=>{"Range"==document.getSelection().type.toString()&&this.addSelected()}),this.elementBody.addEventListener("mousemove",t=>{this.checkElementInForms(t,"trackMouseMovement")})}checkElementInForms(e,t){let c;for(let t=0;t{this.data.push(Object.assign({},this.fieldData))})}setListeners(){this.fields.forEach((t,e)=>{t.addEventListener("paste",()=>{this.data[e].isUseBuffer=!0})}),this.fields.forEach((t,e)=>{t.addEventListener("onautocomplete",()=>{this.data[e].isAutoFill=!0})}),this.fields.forEach((t,c)=>{t.addEventListener("input",()=>{this.data[c].countOfKey++;var t,e=+new Date;1===this.data[c].countOfKey?(this.data[c].lastKeyTimestamp=e,this.data[c].firstKeyTimestamp=e):(t=e-this.data[c].lastKeyTimestamp,2===this.data[c].countOfKey?(this.data[c].lastKeyTimestamp=e,this.data[c].lastDelta=t):2 0) {\n for (let i = 0; i < forms.length; i++) {\n // handle only inputs and textareas\n const handledFormFields = forms[i].querySelectorAll('input,textarea');\n for (let i = 0; i < handledFormFields.length; i++) {\n if (handledFormFields[i].type !== 'hidden') {\n // collect handled fields to remove handler in the future\n ctPublic.handled_fields.push(handledFormFields[i]);\n // do attach handlers\n apbct_attach_event_handler(handledFormFields[i], 'focus', ctFunctionHasInputFocused);\n apbct_attach_event_handler(handledFormFields[i], 'keyup', ctFunctionHasKeyUp);\n }\n }\n }\n }\n }\n}\n\n/**\n * Class collecting user mouse activity data\n *\n */\n// eslint-disable-next-line no-unused-vars, require-jsdoc\nclass ApbctCollectingUserMouseActivity {\n elementBody = document.querySelector('body');\n collectionForms = document.forms;\n /**\n * Constructor\n */\n constructor() {\n this.setListeners();\n }\n\n /**\n * Set listeners\n */\n setListeners() {\n this.elementBody.addEventListener('click', (event) => {\n this.checkElementInForms(event, 'addClicks');\n });\n\n this.elementBody.addEventListener('mouseup', (event) => {\n const selectedType = document.getSelection().type.toString();\n if (selectedType == 'Range') {\n this.addSelected();\n }\n });\n\n this.elementBody.addEventListener('mousemove', (event) => {\n this.checkElementInForms(event, 'trackMouseMovement');\n });\n }\n\n /**\n * Checking if there is an element in the form\n * @param {object} event\n * @param {string} addTarget\n */\n checkElementInForms(event, addTarget) {\n let resultCheck;\n for (let i = 0; i < this.collectionForms.length; i++) {\n if (\n event.target.outerHTML.length > 0 &&\n this.collectionForms[i].innerHTML.length > 0\n ) {\n resultCheck = this.collectionForms[i].innerHTML.indexOf(event.target.outerHTML);\n } else {\n resultCheck = -1;\n }\n }\n\n switch (addTarget) {\n case 'addClicks':\n if (resultCheck < 0) {\n this.addClicks();\n }\n break;\n case 'trackMouseMovement':\n if (resultCheck > -1) {\n this.trackMouseMovement();\n }\n break;\n default:\n break;\n }\n }\n\n /**\n * Add clicks\n */\n addClicks() {\n if (document.ctCollectingUserActivityData) {\n if (document.ctCollectingUserActivityData.clicks) {\n document.ctCollectingUserActivityData.clicks++;\n } else {\n document.ctCollectingUserActivityData.clicks = 1;\n }\n return;\n }\n\n document.ctCollectingUserActivityData = {clicks: 1};\n }\n\n /**\n * Add selected\n */\n addSelected() {\n if (document.ctCollectingUserActivityData) {\n if (document.ctCollectingUserActivityData.selected) {\n document.ctCollectingUserActivityData.selected++;\n } else {\n document.ctCollectingUserActivityData.selected = 1;\n }\n return;\n }\n\n document.ctCollectingUserActivityData = {selected: 1};\n }\n\n /**\n * Track mouse movement\n */\n trackMouseMovement() {\n if (!document.ctCollectingUserActivityData) {\n document.ctCollectingUserActivityData = {};\n }\n if (!document.ctCollectingUserActivityData.mouseMovementsInsideForm) {\n document.ctCollectingUserActivityData.mouseMovementsInsideForm = false;\n }\n\n document.ctCollectingUserActivityData.mouseMovementsInsideForm = true;\n }\n}\n\n/**\n * Class for gathering data about user typing.\n *\n * ==============================\n * isAutoFill - only person can use auto fill\n * isUseBuffer - use buffer for fill current field\n * ==============================\n * lastKeyTimestamp - timestamp of last key press in current field\n * speedDelta - change for each key press in current field,\n * as difference between current and previous key press timestamps,\n * robots in general have constant speed of typing.\n * If speedDelta is constant for each key press in current field,\n * so, speedDelta will be roughly to 0, then it is robot.\n * ==============================\n */\n// eslint-disable-next-line no-unused-vars,require-jsdoc\nclass CTTypoData {\n fieldData = {\n isAutoFill: false,\n isUseBuffer: false,\n speedDelta: 0,\n firstKeyTimestamp: 0,\n lastKeyTimestamp: 0,\n lastDelta: 0,\n countOfKey: 0,\n };\n\n fields = document.querySelectorAll('textarea[name=comment]');\n\n data = [];\n\n /**\n * Gather fields.\n */\n gatheringFields() {\n let fieldSet = Array.prototype.slice.call(this.fields);\n fieldSet.forEach((field, i) => {\n this.data.push(Object.assign({}, this.fieldData));\n });\n }\n\n /**\n * Set listeners.\n */\n setListeners() {\n this.fields.forEach((field, i) => {\n field.addEventListener('paste', () => {\n this.data[i].isUseBuffer = true;\n });\n });\n\n this.fields.forEach((field, i) => {\n field.addEventListener('onautocomplete', () => {\n this.data[i].isAutoFill = true;\n });\n });\n\n this.fields.forEach((field, i) => {\n field.addEventListener('input', () => {\n this.data[i].countOfKey++;\n let time = + new Date();\n let currentDelta = 0;\n\n if (this.data[i].countOfKey === 1) {\n this.data[i].lastKeyTimestamp = time;\n this.data[i].firstKeyTimestamp = time;\n return;\n }\n\n currentDelta = time - this.data[i].lastKeyTimestamp;\n if (this.data[i].countOfKey === 2) {\n this.data[i].lastKeyTimestamp = time;\n this.data[i].lastDelta = currentDelta;\n return;\n }\n\n if (this.data[i].countOfKey > 2) {\n this.data[i].speedDelta += Math.abs(this.data[i].lastDelta - currentDelta);\n this.data[i].lastKeyTimestamp = time;\n this.data[i].lastDelta = currentDelta;\n }\n });\n });\n }\n}\n\n// eslint-disable-next-line camelcase\nconst ctTimeMs = new Date().getTime();\nlet ctMouseEventTimerFlag = true; // Reading interval flag\nlet ctMouseData = [];\nlet ctMouseDataCounter = 0;\nlet ctMouseReadInterval;\nlet ctMouseWriteDataInterval;\n\n\n// Writing first key press timestamp\nconst ctFunctionFirstKey = function output(event) {\n let KeyTimestamp = Math.floor(new Date().getTime() / 1000);\n ctSetCookie('ct_fkp_timestamp', KeyTimestamp);\n ctKeyStopStopListening();\n};\n\n/**\n * Stop mouse observing function\n */\nfunction ctMouseStopData() {\n apbct_remove_event_handler(document, 'mousemove', ctFunctionMouseMove);\n clearInterval(ctMouseReadInterval);\n clearInterval(ctMouseWriteDataInterval);\n}\n\n\n// mouse read\nif (ctPublic.data__key_is_ok) {\n // Reading interval\n ctMouseReadInterval = setInterval(function() {\n ctMouseEventTimerFlag = true;\n }, 150);\n\n // Writting interval\n ctMouseWriteDataInterval = setInterval(function() {\n ctSetCookie('ct_pointer_data', JSON.stringify(ctMouseData));\n }, 1200);\n}\n\n// Logging mouse position each 150 ms\nconst ctFunctionMouseMove = function output(event) {\n ctSetMouseMoved();\n if (ctMouseEventTimerFlag === true) {\n ctMouseData.push([\n Math.round(event.clientY),\n Math.round(event.clientX),\n Math.round(new Date().getTime() - ctTimeMs),\n ]);\n\n ctMouseDataCounter++;\n ctMouseEventTimerFlag = false;\n if (ctMouseDataCounter >= 50) {\n ctMouseStopData();\n }\n }\n};\n\n/**\n * Stop key listening function\n */\nfunction ctKeyStopStopListening() {\n apbct_remove_event_handler(document, 'mousedown', ctFunctionFirstKey);\n apbct_remove_event_handler(document, 'keydown', ctFunctionFirstKey);\n}\n\n/**\n * ctSetHasScrolled\n */\nfunction ctSetHasScrolled() {\n if ( ! apbctLocalStorage.isSet('ct_has_scrolled') || ! apbctLocalStorage.get('ct_has_scrolled') ) {\n ctSetCookie('ct_has_scrolled', 'true');\n apbctLocalStorage.set('ct_has_scrolled', true);\n }\n if (\n ctPublic.data__cookies_type === 'native' &&\n ctGetCookie('ct_has_scrolled') === undefined\n ) {\n ctSetCookie('ct_has_scrolled', 'true');\n }\n}\n\n/**\n * ctSetMouseMoved\n */\nfunction ctSetMouseMoved() {\n if ( ! apbctLocalStorage.isSet('ct_mouse_moved') || ! apbctLocalStorage.get('ct_mouse_moved') ) {\n ctSetCookie('ct_mouse_moved', 'true');\n apbctLocalStorage.set('ct_mouse_moved', true);\n }\n if (\n ctPublic.data__cookies_type === 'native' &&\n ctGetCookie('ct_mouse_moved') === undefined\n ) {\n ctSetCookie('ct_mouse_moved', 'true');\n }\n}\n\n/**\n * stop listening keyup and focus\n * @param {string} eventName\n * @param {string} functionName\n */\nfunction ctStopFieldsListening(eventName, functionName) {\n if (typeof ctPublic.handled_fields !== 'undefined' && ctPublic.handled_fields.length > 0) {\n for (let i = 0; i < ctPublic.handled_fields.length; i++) {\n apbct_remove_event_handler(ctPublic.handled_fields[i], eventName, functionName);\n }\n }\n}\n\nlet ctFunctionHasInputFocused = function output(event) {\n ctSetHasInputFocused();\n ctStopFieldsListening('focus', ctFunctionHasInputFocused);\n};\n\nlet ctFunctionHasKeyUp = function output(event) {\n ctSetHasKeyUp();\n ctStopFieldsListening('keyup', ctFunctionHasKeyUp);\n};\n\n/**\n * set ct_has_input_focused ct_has_key_up cookies on session period\n */\nfunction ctSetHasInputFocused() {\n if ( ! apbctLocalStorage.isSet('ct_has_input_focused') || ! apbctLocalStorage.get('ct_has_input_focused') ) {\n apbctLocalStorage.set('ct_has_input_focused', true);\n }\n if (\n (\n (\n ctPublic.data__cookies_type === 'native' &&\n ctGetCookie('ct_has_input_focused') === undefined\n ) ||\n ctPublic.data__cookies_type === 'alternative'\n ) ||\n (\n ctPublic.data__cookies_type === 'none' &&\n (\n typeof ctPublic.force_alt_cookies !== 'undefined' ||\n (ctPublic.force_alt_cookies !== undefined && ctPublic.force_alt_cookies)\n )\n )\n ) {\n ctSetCookie('ct_has_input_focused', 'true');\n }\n}\n\n/**\n * ctSetHasKeyUp\n */\nfunction ctSetHasKeyUp() {\n if ( ! apbctLocalStorage.isSet('ct_has_key_up') || ! apbctLocalStorage.get('ct_has_key_up') ) {\n apbctLocalStorage.set('ct_has_key_up', true);\n }\n if (\n (\n (\n ctPublic.data__cookies_type === 'native' &&\n ctGetCookie('ct_has_key_up') === undefined\n ) ||\n ctPublic.data__cookies_type === 'alternative'\n ) ||\n (\n ctPublic.data__cookies_type === 'none' &&\n (\n typeof ctPublic.force_alt_cookies !== 'undefined' ||\n (ctPublic.force_alt_cookies !== undefined && ctPublic.force_alt_cookies)\n )\n )\n ) {\n ctSetCookie('ct_has_key_up', 'true');\n }\n}\n\nif (ctPublic.data__key_is_ok) {\n apbct_attach_event_handler(document, 'mousemove', ctFunctionMouseMove);\n apbct_attach_event_handler(document, 'mousedown', ctFunctionFirstKey);\n apbct_attach_event_handler(document, 'keydown', ctFunctionFirstKey);\n apbct_attach_event_handler(document, 'scroll', ctSetHasScrolled);\n}\n\n/**\n * @param {mixed} commonCookies\n * @return {string}\n */\nfunction getJavascriptClientData(commonCookies = []) { // eslint-disable-line no-unused-vars\n let resultDataJson = {};\n\n resultDataJson.ct_checked_emails = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_checked_emails');\n resultDataJson.ct_checked_emails_exist = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_checked_emails_exist');\n resultDataJson.ct_checkjs = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_checkjs');\n resultDataJson.ct_fkp_timestamp = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_fkp_timestamp');\n resultDataJson.ct_pointer_data = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_pointer_data');\n resultDataJson.ct_ps_timestamp = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_ps_timestamp');\n resultDataJson.ct_screen_info = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_screen_info');\n resultDataJson.ct_timezone = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_timezone');\n\n // collecting data from localstorage\n const ctMouseMovedLocalStorage = apbctLocalStorage.get(ctPublicFunctions.cookiePrefix + 'ct_mouse_moved');\n const ctHasScrolledLocalStorage = apbctLocalStorage.get(ctPublicFunctions.cookiePrefix + 'ct_has_scrolled');\n const ctCookiesTypeLocalStorage = apbctLocalStorage.get(ctPublicFunctions.cookiePrefix + 'ct_cookies_type');\n const apbctPageHits = apbctLocalStorage.get('apbct_page_hits');\n const apbctPrevReferer = apbctSessionStorage.get('apbct_prev_referer');\n const apbctSiteReferer = apbctSessionStorage.get('apbct_site_referer');\n const ctJsErrorsLocalStorage = apbctLocalStorage.get(ctPublicFunctions.cookiePrefix + 'ct_js_errors');\n const ctPixelUrl = apbctLocalStorage.get(ctPublicFunctions.cookiePrefix + 'apbct_pixel_url');\n const apbctHeadless = apbctLocalStorage.get(ctPublicFunctions.cookiePrefix + 'apbct_headless');\n const ctBotDetectorFrontendDataLog = apbctLocalStorage.get(\n ctPublicFunctions.cookiePrefix + 'ct_bot_detector_frontend_data_log',\n );\n\n // collecting data from cookies\n const ctMouseMovedCookie = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_mouse_moved');\n const ctHasScrolledCookie = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_has_scrolled');\n const ctCookiesTypeCookie = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_cookies_type');\n const ctCookiesPixelUrl = ctGetCookie(ctPublicFunctions.cookiePrefix + 'apbct_pixel_url');\n const apbctHeadlessNative = !!ctGetCookie(ctPublicFunctions.cookiePrefix + 'apbct_headless');\n\n\n resultDataJson.ct_mouse_moved = ctMouseMovedLocalStorage !== undefined ?\n ctMouseMovedLocalStorage : ctMouseMovedCookie;\n resultDataJson.ct_has_scrolled = ctHasScrolledLocalStorage !== undefined ?\n ctHasScrolledLocalStorage : ctHasScrolledCookie;\n resultDataJson.ct_cookies_type = ctCookiesTypeLocalStorage !== undefined ?\n ctCookiesTypeLocalStorage : ctCookiesTypeCookie;\n resultDataJson.apbct_pixel_url = ctPixelUrl !== undefined ?\n ctPixelUrl : ctCookiesPixelUrl;\n resultDataJson.apbct_headless = apbctHeadless !== undefined ?\n apbctHeadless : apbctHeadlessNative;\n resultDataJson.ct_bot_detector_frontend_data_log = ctBotDetectorFrontendDataLog !== undefined ?\n ctBotDetectorFrontendDataLog : '';\n if (resultDataJson.apbct_pixel_url && typeof(resultDataJson.apbct_pixel_url) == 'string') {\n if (resultDataJson.apbct_pixel_url.indexOf('%3A%2F')) {\n resultDataJson.apbct_pixel_url = decodeURIComponent(resultDataJson.apbct_pixel_url);\n }\n }\n\n resultDataJson.apbct_page_hits = apbctPageHits;\n resultDataJson.apbct_prev_referer = apbctPrevReferer;\n resultDataJson.apbct_site_referer = apbctSiteReferer;\n resultDataJson.apbct_ct_js_errors = ctJsErrorsLocalStorage;\n\n if (!resultDataJson.apbct_pixel_url) {\n resultDataJson.apbct_pixel_url = ctPublic.pixel__url;\n }\n\n if (typeof (commonCookies) === 'object') {\n for (let i = 0; i < commonCookies.length; ++i) {\n if ( typeof (commonCookies[i][1]) === 'object' ) {\n // this is for handle SFW cookies\n resultDataJson[commonCookies[i][1][0]] = commonCookies[i][1][1];\n } else {\n resultDataJson[commonCookies[i][0]] = commonCookies[i][1];\n }\n }\n } else {\n console.log('APBCT JS ERROR: Collecting data type mismatch');\n }\n\n // Parse JSON properties to prevent double JSON encoding\n resultDataJson = removeDoubleJsonEncoding(resultDataJson);\n\n\n return JSON.stringify(resultDataJson);\n}\n\n/**\n * @return {bool}\n */\nfunction ctIsDrawPixel() {\n if (ctPublic.pixel__setting == '3' && +ctPublic.bot_detector_enabled) {\n return false;\n }\n\n return +ctPublic.pixel__enabled ||\n (ctPublic.data__cookies_type === 'none' && document.querySelectorAll('img#apbct_pixel').length === 0) ||\n (ctPublic.data__cookies_type === 'alternative' && document.querySelectorAll('img#apbct_pixel').length === 0);\n}\n\n/**\n * @param {string} pixelUrl\n * @return {bool}\n */\nfunction ctSetPixelImg(pixelUrl) {\n if (ctPublic.pixel__setting == '3' && +ctPublic.bot_detector_enabled) {\n return false;\n }\n ctSetCookie('apbct_pixel_url', pixelUrl);\n if ( ctIsDrawPixel() ) {\n if ( ! document.getElementById('apbct_pixel') ) {\n let insertedImg = document.createElement('img');\n insertedImg.setAttribute('alt', 'CleanTalk Pixel');\n insertedImg.setAttribute('title', 'CleanTalk Pixel');\n insertedImg.setAttribute('id', 'apbct_pixel');\n insertedImg.setAttribute('style', 'display: none; left: 99999px;');\n insertedImg.setAttribute('src', pixelUrl);\n apbct('body').append(insertedImg);\n }\n }\n}\n\n/**\n * @param {string} pixelUrl\n * @return {bool}\n */\nfunction ctSetPixelImgFromLocalstorage(pixelUrl) {\n if (ctPublic.pixel__setting == '3' && +ctPublic.bot_detector_enabled) {\n return false;\n }\n if ( ctIsDrawPixel() ) {\n if ( ! document.getElementById('apbct_pixel') ) {\n let insertedImg = document.createElement('img');\n insertedImg.setAttribute('alt', 'CleanTalk Pixel');\n insertedImg.setAttribute('title', 'CleanTalk Pixel');\n insertedImg.setAttribute('id', 'apbct_pixel');\n insertedImg.setAttribute('style', 'display: none; left: 99999px;');\n insertedImg.setAttribute('src', decodeURIComponent(pixelUrl));\n apbct('body').append(insertedImg);\n }\n }\n}\n\n/**\n * ctGetPixelUrl\n * @return {bool}\n */\n// eslint-disable-next-line no-unused-vars, require-jsdoc\nfunction ctGetPixelUrl() {\n if (ctPublic.pixel__setting == '3' && +ctPublic.bot_detector_enabled) {\n return false;\n }\n\n // Check if pixel is already in localstorage and is not outdated\n let localStoragePixelUrl = apbctLocalStorage.get('apbct_pixel_url');\n if ( localStoragePixelUrl !== false ) {\n if ( ! apbctLocalStorage.isAlive('apbct_pixel_url', 3600 * 3) ) {\n apbctLocalStorage.delete('apbct_pixel_url');\n } else {\n // if so - load pixel from localstorage and draw it skipping AJAX\n ctSetPixelImgFromLocalstorage(localStoragePixelUrl);\n return;\n }\n }\n // Using REST API handler\n if ( ctPublicFunctions.data__ajax_type === 'rest' ) {\n apbct_public_sendREST(\n 'apbct_get_pixel_url',\n {\n method: 'POST',\n callback: function(result) {\n if (result &&\n (typeof result === 'string' || result instanceof String) && result.indexOf('https') === 0) {\n // set pixel url to localstorage\n if ( ! apbctLocalStorage.get('apbct_pixel_url') ) {\n // set pixel to the storage\n apbctLocalStorage.set('apbct_pixel_url', result);\n // update pixel data in the hidden fields\n ctNoCookieAttachHiddenFieldsToForms();\n }\n // then run pixel drawing\n ctSetPixelImg(result);\n }\n },\n },\n );\n // Using AJAX request and handler\n } else {\n apbct_public_sendAJAX(\n {\n action: 'apbct_get_pixel_url',\n },\n {\n notJson: true,\n callback: function(result) {\n if (result &&\n (typeof result === 'string' || result instanceof String) && result.indexOf('https') === 0) {\n // set pixel url to localstorage\n if ( ! apbctLocalStorage.get('apbct_pixel_url') ) {\n // set pixel to the storage\n apbctLocalStorage.set('apbct_pixel_url', result);\n // update pixel data in the hidden fields\n ctNoCookieAttachHiddenFieldsToForms();\n }\n // then run pixel drawing\n ctSetPixelImg(result);\n }\n },\n beforeSend: function(xhr) {\n xhr.setRequestHeader('X-Robots-Tag', 'noindex, nofollow');\n },\n },\n );\n }\n}\n\n// eslint-disable-next-line no-unused-vars,require-jsdoc\nfunction ctSetPixelUrlLocalstorage(ajaxPixelUrl) {\n // set pixel to the storage\n ctSetCookie('apbct_pixel_url', ajaxPixelUrl);\n}\n\n/**\n * Handler for -webkit based browser that listen for a custom\n * animation create using the :pseudo-selector in the stylesheet.\n * Works with Chrome, Safari\n *\n * @param {AnimationEvent} event\n */\n// eslint-disable-next-line no-unused-vars,require-jsdoc\nfunction apbctOnAnimationStart(event) {\n ('onautofillstart' === event.animationName) ?\n apbctAutocomplete(event.target) : apbctCancelAutocomplete(event.target);\n}\n\n/**\n * Handler for non-webkit based browser that listen for input\n * event to trigger the autocomplete-cancel process.\n * Works with Firefox, Edge, IE11\n *\n * @param {InputEvent} event\n */\n// eslint-disable-next-line no-unused-vars,require-jsdoc\nfunction apbctOnInput(event) {\n ('insertReplacementText' === event.inputType || !('data' in event)) ?\n apbctAutocomplete(event.target) : apbctCancelAutocomplete(event.target);\n}\n\n/**\n * Manage an input element when its value is autocompleted\n * by the browser in the following steps:\n * - add [autocompleted] attribute from event.target\n * - create 'onautocomplete' cancelable CustomEvent\n * - dispatch the Event\n *\n * @param {HtmlInputElement} element\n */\nfunction apbctAutocomplete(element) {\n if (element.hasAttribute('autocompleted')) return;\n element.setAttribute('autocompleted', '');\n\n let event = new window.CustomEvent('onautocomplete', {\n bubbles: true, cancelable: true, detail: null,\n });\n\n // no autofill if preventDefault is called\n if (!element.dispatchEvent(event)) {\n element.value = '';\n }\n}\n\n/**\n * Manage an input element when its autocompleted value is\n * removed by the browser in the following steps:\n * - remove [autocompleted] attribute from event.target\n * - create 'onautocomplete' non-cancelable CustomEvent\n * - dispatch the Event\n *\n * @param {HtmlInputElement} element\n */\nfunction apbctCancelAutocomplete(element) {\n if (!element.hasAttribute('autocompleted')) return;\n element.removeAttribute('autocompleted');\n\n // dispatch event\n element.dispatchEvent(new window.CustomEvent('onautocomplete', {\n bubbles: true, cancelable: false, detail: null,\n }));\n}\n"],"names":["ApbctGatheringData","setSessionId","sessionID","apbctSessionStorage","isSet","apbctLocalStorage","set","Number","get","Math","random","toString","replace","substr","document","referrer","URL","host","location","writeReferrersToSessionStorage","sessionCurrentPage","href","setCookiesType","cookiesType","ctPublic","data__cookies_type","delete","startFieldsListening","this","setTimeout","listenAutocomplete","window","addEventListener","apbctOnAnimationStart","apbctOnInput","gatheringTypoData","ctTypoData","CTTypoData","gatheringFields","setListeners","gatheringMouseData","ApbctCollectingUserMouseActivity","getScreenInfo","docEl","documentElement","body","layoutData","scrollWidth","bodyScrollHeight","scrollHeight","docScrollHeight","bodyOffsetHeight","offsetHeight","docOffsetHeight","bodyClientHeight","clientHeight","docClientHeight","docClientWidth","clientWidth","JSON","stringify","fullWidth","fullHeight","max","visibleWidth","visibleHeight","restartFieldsListening","undefined","ctGetCookie","let","forms","ctGetPageForms","handled_fields","length","i","handledFormFields","querySelectorAll","type","push","apbct_attach_event_handler","ctFunctionHasInputFocused","ctFunctionHasKeyUp","elementBody","querySelector","collectionForms","constructor","checkElementInForms","event","getSelection","addSelected","addTarget","resultCheck","target","outerHTML","innerHTML","indexOf","addClicks","trackMouseMovement","ctCollectingUserActivityData","clicks","selected","mouseMovementsInsideForm","fieldData","isAutoFill","isUseBuffer","speedDelta","firstKeyTimestamp","lastKeyTimestamp","lastDelta","countOfKey","fields","data","Array","prototype","slice","call","forEach","field","Object","assign","currentDelta","time","Date","abs","ctTimeMs","getTime","ctMouseEventTimerFlag","ctMouseData","ctMouseDataCounter","ctMouseReadInterval","ctMouseWriteDataInterval","ctFunctionFirstKey","KeyTimestamp","floor","ctSetCookie","ctKeyStopStopListening","ctMouseStopData","apbct_remove_event_handler","ctFunctionMouseMove","clearInterval","data__key_is_ok","setInterval","ctSetMouseMoved","round","clientY","clientX","ctSetHasScrolled","ctStopFieldsListening","eventName","functionName","ctSetHasInputFocused","ctSetHasKeyUp","force_alt_cookies","getJavascriptClientData","commonCookies","resultDataJson","ct_checked_emails","ctPublicFunctions","cookiePrefix","ct_checked_emails_exist","ct_checkjs","ct_fkp_timestamp","ct_pointer_data","ct_ps_timestamp","ct_screen_info","ct_timezone","ctMouseMovedLocalStorage","ctHasScrolledLocalStorage","ctCookiesTypeLocalStorage","apbctPageHits","apbctPrevReferer","apbctSiteReferer","ctJsErrorsLocalStorage","ctPixelUrl","apbctHeadless","ctBotDetectorFrontendDataLog","ctMouseMovedCookie","ctHasScrolledCookie","ctCookiesTypeCookie","ctCookiesPixelUrl","apbctHeadlessNative","ct_mouse_moved","ct_has_scrolled","ct_cookies_type","apbct_pixel_url","apbct_headless","ct_bot_detector_frontend_data_log","decodeURIComponent","apbct_page_hits","apbct_prev_referer","apbct_site_referer","apbct_ct_js_errors","pixel__url","console","log","removeDoubleJsonEncoding","ctIsDrawPixel","pixel__setting","bot_detector_enabled","pixel__enabled","ctSetPixelImg","pixelUrl","insertedImg","getElementById","createElement","setAttribute","apbct","append","ctSetPixelImgFromLocalstorage","ctGetPixelUrl","localStoragePixelUrl","isAlive","data__ajax_type","apbct_public_sendREST","method","callback","result","String","ctNoCookieAttachHiddenFieldsToForms","apbct_public_sendAJAX","action","notJson","beforeSend","xhr","setRequestHeader","ctSetPixelUrlLocalstorage","ajaxPixelUrl","animationName","apbctAutocomplete","apbctCancelAutocomplete","inputType","element","hasAttribute","CustomEvent","bubbles","cancelable","detail","dispatchEvent","value","removeAttribute"],"mappings":"MAGMA,mBAKFC,eACI,IACUC,EADLC,oBAAoBC,MAAM,kBAAkB,EAW7CC,kBAAkBC,IAAI,kBAAmBC,OAAOF,kBAAkBG,IAAI,iBAAiB,CAAC,EAAI,CAAC,GAVvFN,EAAYO,KAAKC,OAAO,EAAEC,SAAS,EAAE,EAAEC,QAAQ,WAAY,EAAE,EAAEC,OAAO,EAAG,EAAE,EACjFV,oBAAoBG,IAAI,mBAAoBJ,EAAW,CAAA,CAAK,EAC5DG,kBAAkBC,IAAI,kBAAmB,CAAC,EACtCQ,SAASC,UACQ,IAAIC,IAAIF,SAASC,QAAQ,EAC3BE,OAASC,SAASD,MAC7Bd,oBAAoBG,IAAI,qBAAsBQ,SAASC,SAAU,CAAA,CAAK,EAMtF,CAMAI,iCACI,IAAMC,EAAqBjB,oBAAoBK,IAAI,4BAA4B,EAErD,CAAA,IAAtBY,GAA+BN,SAASI,SAASG,OAASD,GAC1DjB,oBAAoBG,IAAI,qBAAsBc,EAAoB,CAAA,CAAK,EAG3EjB,oBAAoBG,IAAI,6BAA8BQ,SAASI,SAASG,KAAM,CAAA,CAAK,CACvF,CAOAC,iBACI,IAAMC,EAAclB,kBAAkBG,IAAI,iBAAiB,EACpDe,GAAeA,IAAgBC,SAASC,qBAC3CpB,kBAAkBC,IAAI,kBAAmBkB,SAASC,kBAAkB,EACpEpB,kBAAkBqB,OAAO,gBAAgB,EACzCrB,kBAAkBqB,OAAO,iBAAiB,EAElD,CAMAC,uBACwC,gBAAhCH,SAASC,qBACTG,KAAKD,qBAAqB,EAE1BE,WAAWD,KAAKD,qBAAsB,GAAI,EAElD,CAMAG,qBACIC,OAAOC,iBAAiB,iBAAkBJ,KAAKK,sBAAuB,CAAA,CAAI,EAC1EF,OAAOC,iBAAiB,QAASJ,KAAKM,aAAc,CAAA,CAAI,CAC5D,CAMAC,oBACIrB,SAASsB,WAAa,IAAIC,WAC1BvB,SAASsB,WAAWE,gBAAgB,EACpCxB,SAASsB,WAAWG,aAAa,CACrC,CAMAC,qBACI,IAAIC,gCACR,CAMAC,gBAEI,IAAMC,EAAQ7B,SAAS8B,gBACjBC,EAAO/B,SAAS+B,KAGhBC,EAAa,CACfC,YAAaJ,EAAMI,YACnBC,iBAAkBH,EAAKI,aACvBC,gBAAiBP,EAAMM,aACvBE,iBAAkBN,EAAKO,aACvBC,gBAAiBV,EAAMS,aACvBE,iBAAkBT,EAAKU,aACvBC,gBAAiBb,EAAMY,aACvBE,eAAgBd,EAAMe,WAC1B,EAEA,OAAOC,KAAKC,UAAU,CAClBC,UAAWf,EAAWC,YACtBe,WAAYrD,KAAKsD,IACbjB,EAAWE,iBAAkBF,EAAWI,gBACxCJ,EAAWK,iBAAkBL,EAAWO,gBACxCP,EAAWQ,iBAAkBR,EAAWU,eAC5C,EACAQ,aAAclB,EAAWW,eACzBQ,cAAenB,EAAWU,eAC9B,CAAC,CACL,CAMAU,yBACS7D,kBAAkBD,MAAM,sBAAsB,GAAMC,kBAAkBD,MAAM,eAAe,GAC5FwB,KAAKD,qBAAqB,CAElC,CAMAA,uBACI,GACKtB,CAAAA,kBAAkBD,MAAM,eAAe,GAAKC,CAAAA,kBAAkBG,IAAI,eAAe,GACjFH,CAAAA,kBAAkBD,MAAM,sBAAsB,GAAKC,CAAAA,kBAAkBG,IAAI,sBAAsB,GAE5D,WAAhCgB,SAASC,oBAC+B0C,KAAAA,IAAxCC,YAAY,sBAAsB,GACDD,KAAAA,IAAjCC,YAAY,eAAe,EANnC,CAaAC,IAAIC,EAAQC,eAAe,EAG3B,GAFA/C,SAASgD,eAAiB,GAEP,EAAfF,EAAMG,OACN,IAAKJ,IAAIK,EAAI,EAAGA,EAAIJ,EAAMG,OAAQC,CAAC,GAAI,CAEnC,IAAMC,EAAoBL,EAAMI,GAAGE,iBAAiB,gBAAgB,EACpE,IAAKP,IAAIK,EAAI,EAAGA,EAAIC,EAAkBF,OAAQC,CAAC,GACT,WAA9BC,EAAkBD,GAAGG,OAErBrD,SAASgD,eAAeM,KAAKH,EAAkBD,EAAE,EAEjDK,2BAA2BJ,EAAkBD,GAAI,QAASM,yBAAyB,EACnFD,2BAA2BJ,EAAkBD,GAAI,QAASO,kBAAkB,EAGxF,CAlBJ,CAoBJ,CACJ,OAOMxC,iCACFyC,YAAcpE,SAASqE,cAAc,MAAM,EAC3CC,gBAAkBtE,SAASwD,MAI3Be,cACIzD,KAAKW,aAAa,CACtB,CAKAA,eACIX,KAAKsD,YAAYlD,iBAAiB,QAAS,IACvCJ,KAAK0D,oBAAoBC,EAAO,WAAW,CAC/C,CAAC,EAED3D,KAAKsD,YAAYlD,iBAAiB,UAAW,IAErB,SADClB,SAAS0E,aAAa,EAAEX,KAAKlE,SAAS,GAEvDiB,KAAK6D,YAAY,CAEzB,CAAC,EAED7D,KAAKsD,YAAYlD,iBAAiB,YAAa,IAC3CJ,KAAK0D,oBAAoBC,EAAO,oBAAoB,CACxD,CAAC,CACL,CAOAD,oBAAoBC,EAAOG,GACvBrB,IAAIsB,EACJ,IAAKtB,IAAIK,EAAI,EAAGA,EAAI9C,KAAKwD,gBAAgBX,OAAQC,CAAC,GAK1CiB,EAHgC,EAAhCJ,EAAMK,OAAOC,UAAUpB,QACoB,EAA3C7C,KAAKwD,gBAAgBV,GAAGoB,UAAUrB,OAEpB7C,KAAKwD,gBAAgBV,GAAGoB,UAAUC,QAAQR,EAAMK,OAAOC,SAAS,EAEhE,CAAC,EAIvB,OAAQH,GACR,IAAK,YACGC,EAAc,GACd/D,KAAKoE,UAAU,EAEnB,MACJ,IAAK,qBACiB,CAAC,EAAfL,GACA/D,KAAKqE,mBAAmB,CAKhC,CACJ,CAKAD,YACQlF,SAASoF,6BACLpF,SAASoF,6BAA6BC,OACtCrF,SAASoF,6BAA6BC,MAAM,GAE5CrF,SAASoF,6BAA6BC,OAAS,EAKvDrF,SAASoF,6BAA+B,CAACC,OAAQ,CAAC,CACtD,CAKAV,cACQ3E,SAASoF,6BACLpF,SAASoF,6BAA6BE,SACtCtF,SAASoF,6BAA6BE,QAAQ,GAE9CtF,SAASoF,6BAA6BE,SAAW,EAKzDtF,SAASoF,6BAA+B,CAACE,SAAU,CAAC,CACxD,CAKAH,qBACSnF,SAASoF,+BACVpF,SAASoF,6BAA+B,IAEvCpF,SAASoF,6BAA6BG,2BACvCvF,SAASoF,6BAA6BG,yBAA2B,CAAA,GAGrEvF,SAASoF,6BAA6BG,yBAA2B,CAAA,CACrE,CACJ,OAkBMhE,WACFiE,UAAY,CACRC,WAAY,CAAA,EACZC,YAAa,CAAA,EACbC,WAAY,EACZC,kBAAmB,EACnBC,iBAAkB,EAClBC,UAAW,EACXC,WAAY,CAChB,EAEAC,OAAShG,SAAS8D,iBAAiB,wBAAwB,EAE3DmC,KAAO,GAKPzE,kBACmB0E,MAAMC,UAAUC,MAAMC,KAAKvF,KAAKkF,MAAM,EAC5CM,QAAQ,CAACC,EAAO3C,KACrB9C,KAAKmF,KAAKjC,KAAKwC,OAAOC,OAAO,GAAI3F,KAAK0E,SAAS,CAAC,CACpD,CAAC,CACL,CAKA/D,eACIX,KAAKkF,OAAOM,QAAQ,CAACC,EAAO3C,KACxB2C,EAAMrF,iBAAiB,QAAS,KAC5BJ,KAAKmF,KAAKrC,GAAG8B,YAAc,CAAA,CAC/B,CAAC,CACL,CAAC,EAED5E,KAAKkF,OAAOM,QAAQ,CAACC,EAAO3C,KACxB2C,EAAMrF,iBAAiB,iBAAkB,KACrCJ,KAAKmF,KAAKrC,GAAG6B,WAAa,CAAA,CAC9B,CAAC,CACL,CAAC,EAED3E,KAAKkF,OAAOM,QAAQ,CAACC,EAAO3C,KACxB2C,EAAMrF,iBAAiB,QAAS,KAC5BJ,KAAKmF,KAAKrC,GAAGmC,UAAU,GACvBxC,IACImD,EADAC,EAAO,CAAE,IAAIC,KAGe,IAA5B9F,KAAKmF,KAAKrC,GAAGmC,YACbjF,KAAKmF,KAAKrC,GAAGiC,iBAAmBc,EAChC7F,KAAKmF,KAAKrC,GAAGgC,kBAAoBe,IAIrCD,EAAeC,EAAO7F,KAAKmF,KAAKrC,GAAGiC,iBACH,IAA5B/E,KAAKmF,KAAKrC,GAAGmC,YACbjF,KAAKmF,KAAKrC,GAAGiC,iBAAmBc,EAChC7F,KAAKmF,KAAKrC,GAAGkC,UAAYY,GAIC,EAA1B5F,KAAKmF,KAAKrC,GAAGmC,aACbjF,KAAKmF,KAAKrC,GAAG+B,YAAchG,KAAKkH,IAAI/F,KAAKmF,KAAKrC,GAAGkC,UAAYY,CAAY,EACzE5F,KAAKmF,KAAKrC,GAAGiC,iBAAmBc,EAChC7F,KAAKmF,KAAKrC,GAAGkC,UAAYY,GAEjC,CAAC,CACL,CAAC,CACL,CACJ,CAGA,IAAMI,UAAW,IAAIF,MAAOG,QAAQ,EAChCC,sBAAwB,CAAA,EACxBC,YAAc,GACdC,mBAAqB,EACrBC,oBACAC,yBAIEC,mBAAqB,SAAgB5C,GACvClB,IAAI+D,EAAe3H,KAAK4H,OAAM,IAAIX,MAAOG,QAAQ,EAAI,GAAI,EACzDS,YAAY,mBAAoBF,CAAY,EAC5CG,uBAAuB,CAC3B,EAKA,SAASC,kBACLC,2BAA2B3H,SAAU,YAAa4H,mBAAmB,EACrEC,cAAcV,mBAAmB,EACjCU,cAAcT,wBAAwB,CAC1C,CAII1G,SAASoH,kBAETX,oBAAsBY,YAAY,WAC9Bf,sBAAwB,CAAA,CAC5B,EAAG,GAAG,EAGNI,yBAA2BW,YAAY,WACnCP,YAAY,kBAAmB3E,KAAKC,UAAUmE,WAAW,CAAC,CAC9D,EAAG,IAAI,GAIX,IAAMW,oBAAsB,SAAgBnD,GACxCuD,gBAAgB,EACc,CAAA,IAA1BhB,wBACAC,YAAYjD,KAAK,CACbrE,KAAKsI,MAAMxD,EAAMyD,OAAO,EACxBvI,KAAKsI,MAAMxD,EAAM0D,OAAO,EACxBxI,KAAKsI,OAAM,IAAIrB,MAAOG,QAAQ,EAAID,QAAQ,EAC7C,EAEDI,kBAAkB,GAClBF,sBAAwB,CAAA,EACE,IAAtBE,qBACAQ,gBAAgB,CAG5B,EAKA,SAASD,yBACLE,2BAA2B3H,SAAU,YAAaqH,kBAAkB,EACpEM,2BAA2B3H,SAAU,UAAWqH,kBAAkB,CACtE,CAKA,SAASe,mBACE7I,kBAAkBD,MAAM,iBAAiB,GAAOC,kBAAkBG,IAAI,iBAAiB,IAC1F8H,YAAY,kBAAmB,MAAM,EACrCjI,kBAAkBC,IAAI,kBAAmB,CAAA,CAAI,GAGb,WAAhCkB,SAASC,oBAC0B0C,KAAAA,IAAnCC,YAAY,iBAAiB,GAE7BkE,YAAY,kBAAmB,MAAM,CAE7C,CAKA,SAASQ,kBACEzI,kBAAkBD,MAAM,gBAAgB,GAAOC,kBAAkBG,IAAI,gBAAgB,IACxF8H,YAAY,iBAAkB,MAAM,EACpCjI,kBAAkBC,IAAI,iBAAkB,CAAA,CAAI,GAGZ,WAAhCkB,SAASC,oBACyB0C,KAAAA,IAAlCC,YAAY,gBAAgB,GAE5BkE,YAAY,iBAAkB,MAAM,CAE5C,CAOA,SAASa,sBAAsBC,EAAWC,GACtC,GAAuC,KAAA,IAA5B7H,SAASgD,gBAAmE,EAAjChD,SAASgD,eAAeC,OAC1E,IAAKJ,IAAIK,EAAI,EAAGA,EAAIlD,SAASgD,eAAeC,OAAQC,CAAC,GACjD+D,2BAA2BjH,SAASgD,eAAeE,GAAI0E,EAAWC,CAAY,CAG1F,CAEAhF,IAAIW,0BAA4B,SAAgBO,GAC5C+D,qBAAqB,EACrBH,sBAAsB,QAASnE,yBAAyB,CAC5D,EAEIC,mBAAqB,SAAgBM,GACrCgE,cAAc,EACdJ,sBAAsB,QAASlE,kBAAkB,CACrD,EAKA,SAASqE,uBACEjJ,kBAAkBD,MAAM,sBAAsB,GAAOC,kBAAkBG,IAAI,sBAAsB,GACpGH,kBAAkBC,IAAI,uBAAwB,CAAA,CAAI,GAKV,WAAhCkB,SAASC,oBAC+B0C,KAAAA,IAAxCC,YAAY,sBAAsB,GAEN,gBAAhC5C,SAASC,oBAGuB,SAAhCD,SAASC,qBAEiC,KAAA,IAA/BD,SAASgI,mBACgBrF,KAAAA,IAA/B3C,SAASgI,mBAAmChI,SAASgI,qBAI9DlB,YAAY,uBAAwB,MAAM,CAElD,CAKA,SAASiB,gBACElJ,kBAAkBD,MAAM,eAAe,GAAOC,kBAAkBG,IAAI,eAAe,GACtFH,kBAAkBC,IAAI,gBAAiB,CAAA,CAAI,GAKH,WAAhCkB,SAASC,oBACwB0C,KAAAA,IAAjCC,YAAY,eAAe,GAEC,gBAAhC5C,SAASC,oBAGuB,SAAhCD,SAASC,qBAEiC,KAAA,IAA/BD,SAASgI,mBACgBrF,KAAAA,IAA/B3C,SAASgI,mBAAmChI,SAASgI,qBAI9DlB,YAAY,gBAAiB,MAAM,CAE3C,CAaA,SAASmB,wBAAwBC,EAAgB,IAC7CrF,IAAIsF,EAAiB,GAErBA,EAAeC,kBAAoBxF,YAAYyF,kBAAkBC,aAAe,mBAAmB,EACnGH,EAAeI,wBAA0B3F,YAAYyF,kBAAkBC,aAAe,yBAAyB,EAC/GH,EAAeK,WAAa5F,YAAYyF,kBAAkBC,aAAe,YAAY,EACrFH,EAAeM,iBAAmB7F,YAAYyF,kBAAkBC,aAAe,kBAAkB,EACjGH,EAAeO,gBAAkB9F,YAAYyF,kBAAkBC,aAAe,iBAAiB,EAC/FH,EAAeQ,gBAAkB/F,YAAYyF,kBAAkBC,aAAe,iBAAiB,EAC/FH,EAAeS,eAAiBhG,YAAYyF,kBAAkBC,aAAe,gBAAgB,EAC7FH,EAAeU,YAAcjG,YAAYyF,kBAAkBC,aAAe,aAAa,EAGvF,IAAMQ,EAA2BjK,kBAAkBG,IAAIqJ,kBAAkBC,aAAe,gBAAgB,EAClGS,EAA4BlK,kBAAkBG,IAAIqJ,kBAAkBC,aAAe,iBAAiB,EACpGU,EAA4BnK,kBAAkBG,IAAIqJ,kBAAkBC,aAAe,iBAAiB,EACpGW,EAAgBpK,kBAAkBG,IAAI,iBAAiB,EACvDkK,EAAmBvK,oBAAoBK,IAAI,oBAAoB,EAC/DmK,EAAmBxK,oBAAoBK,IAAI,oBAAoB,EAC/DoK,EAAyBvK,kBAAkBG,IAAIqJ,kBAAkBC,aAAe,cAAc,EAC9Fe,EAAaxK,kBAAkBG,IAAIqJ,kBAAkBC,aAAe,iBAAiB,EACrFgB,EAAgBzK,kBAAkBG,IAAIqJ,kBAAkBC,aAAe,gBAAgB,EACvFiB,EAA+B1K,kBAAkBG,IACnDqJ,kBAAkBC,aAAe,mCACrC,EAGMkB,EAAqB5G,YAAYyF,kBAAkBC,aAAe,gBAAgB,EAClFmB,EAAsB7G,YAAYyF,kBAAkBC,aAAe,iBAAiB,EACpFoB,EAAsB9G,YAAYyF,kBAAkBC,aAAe,iBAAiB,EACpFqB,EAAoB/G,YAAYyF,kBAAkBC,aAAe,iBAAiB,EAClFsB,EAAsB,CAAC,CAAChH,YAAYyF,kBAAkBC,aAAe,gBAAgB,EA8B3F,GA3BAH,EAAe0B,eAA8ClH,KAAAA,IAA7BmG,EAC5BA,EAA2BU,EAC/BrB,EAAe2B,gBAAgDnH,KAAAA,IAA9BoG,EAC7BA,EAA4BU,EAChCtB,EAAe4B,gBAAgDpH,KAAAA,IAA9BqG,EAC7BA,EAA4BU,EAChCvB,EAAe6B,gBAAiCrH,KAAAA,IAAf0G,EAC7BA,EAAaM,EACjBxB,EAAe8B,eAAmCtH,KAAAA,IAAlB2G,EAC5BA,EAAgBM,EACpBzB,EAAe+B,kCAAqEvH,KAAAA,IAAjC4G,EAC/CA,EAA+B,GAC/BpB,EAAe6B,iBAA6D,UAA1C,OAAO7B,EAA8B,iBACnEA,EAAe6B,gBAAgBzF,QAAQ,QAAQ,IAC/C4D,EAAe6B,gBAAkBG,mBAAmBhC,EAAe6B,eAAe,GAI1F7B,EAAeiC,gBAAkBnB,EACjCd,EAAekC,mBAAqBnB,EACpCf,EAAemC,mBAAqBnB,EACpChB,EAAeoC,mBAAqBnB,EAE/BjB,EAAe6B,kBAChB7B,EAAe6B,gBAAkBhK,SAASwK,YAGf,UAA3B,OAAO,EACP,IAAK3H,IAAIK,EAAI,EAAGA,EAAIgF,EAAcjF,OAAQ,EAAEC,EACF,UAAjC,OAAQgF,EAAchF,GAAG,GAE1BiF,EAAeD,EAAchF,GAAG,GAAG,IAAMgF,EAAchF,GAAG,GAAG,GAE7DiF,EAAeD,EAAchF,GAAG,IAAMgF,EAAchF,GAAG,QAI/DuH,QAAQC,IAAI,+CAA+C,EAO/D,OAHAvC,EAAiBwC,yBAAyBxC,CAAc,EAGjDhG,KAAKC,UAAU+F,CAAc,CACxC,CAKA,SAASyC,gBACL,OAA+B,KAA3B5K,SAAS6K,gBAAyB,CAAA,CAAC7K,SAAS8K,wBAIzC,CAAC9K,SAAS+K,gBACoB,SAAhC/K,SAASC,oBAAyF,IAAxDX,SAAS8D,iBAAiB,iBAAiB,EAAEH,QACvD,gBAAhCjD,SAASC,oBAAgG,IAAxDX,SAAS8D,iBAAiB,iBAAiB,EAAEH,OACvG,CAMA,SAAS+H,cAAcC,GACnB,GAA+B,KAA3BjL,SAAS6K,gBAAyB,CAAC7K,SAAS8K,qBAC5C,MAAO,CAAA,EAGX,IAEYI,EAHZpE,YAAY,kBAAmBmE,CAAQ,EAClCL,cAAc,GACRtL,CAAAA,SAAS6L,eAAe,aAAa,KACpCD,EAAc5L,SAAS8L,cAAc,KAAK,GAClCC,aAAa,MAAO,iBAAiB,EACjDH,EAAYG,aAAa,QAAS,iBAAiB,EACnDH,EAAYG,aAAa,KAAM,aAAa,EAC5CH,EAAYG,aAAa,QAAS,+BAA+B,EACjEH,EAAYG,aAAa,MAAOJ,CAAQ,EACxCK,MAAM,MAAM,EAAEC,OAAOL,CAAW,EAG5C,CAMA,SAASM,8BAA8BP,GACnC,GAA+B,KAA3BjL,SAAS6K,gBAAyB,CAAC7K,SAAS8K,qBAC5C,MAAO,CAAA,EAEX,IAEYI,EAFPN,cAAc,GACRtL,CAAAA,SAAS6L,eAAe,aAAa,KACpCD,EAAc5L,SAAS8L,cAAc,KAAK,GAClCC,aAAa,MAAO,iBAAiB,EACjDH,EAAYG,aAAa,QAAS,iBAAiB,EACnDH,EAAYG,aAAa,KAAM,aAAa,EAC5CH,EAAYG,aAAa,QAAS,+BAA+B,EACjEH,EAAYG,aAAa,MAAOlB,mBAAmBc,CAAQ,CAAC,EAC5DK,MAAM,MAAM,EAAEC,OAAOL,CAAW,EAG5C,CAOA,SAASO,gBACL,GAA+B,KAA3BzL,SAAS6K,gBAAyB,CAAC7K,SAAS8K,qBAC5C,MAAO,CAAA,EAIXjI,IAAI6I,EAAuB7M,kBAAkBG,IAAI,iBAAiB,EAClE,GAA8B,CAAA,IAAzB0M,EAAiC,CAClC,GAAO7M,kBAAkB8M,QAAQ,kBAAmB,KAAQ,EAKxD,OADAH,KAAAA,8BAA8BE,CAAoB,EAHlD7M,kBAAkBqB,OAAO,iBAAiB,CAMlD,CAE2C,SAAtCmI,kBAAkBuD,gBACnBC,sBACI,sBACA,CACIC,OAAQ,OACRC,SAAU,SAASC,GACXA,IACmB,UAAlB,OAAOA,GAAuBA,aAAkBC,SAAuC,IAA5BD,EAAOzH,QAAQ,OAAO,IAE3E1F,kBAAkBG,IAAI,iBAAiB,IAE1CH,kBAAkBC,IAAI,kBAAmBkN,CAAM,EAE/CE,oCAAoC,GAGxClB,cAAcgB,CAAM,EAE5B,CACJ,CACJ,EAGAG,sBACI,CACIC,OAAQ,qBACZ,EACA,CACIC,QAAS,CAAA,EACTN,SAAU,SAASC,GACXA,IACmB,UAAlB,OAAOA,GAAuBA,aAAkBC,SAAuC,IAA5BD,EAAOzH,QAAQ,OAAO,IAE3E1F,kBAAkBG,IAAI,iBAAiB,IAE1CH,kBAAkBC,IAAI,kBAAmBkN,CAAM,EAE/CE,oCAAoC,GAGxClB,cAAcgB,CAAM,EAE5B,EACAM,WAAY,SAASC,GACjBA,EAAIC,iBAAiB,eAAgB,mBAAmB,CAC5D,CACJ,CACJ,CAER,CAGA,SAASC,0BAA0BC,GAE/B5F,YAAY,kBAAmB4F,CAAY,CAC/C,CAUA,SAASjM,sBAAsBsD,IAC1B,oBAAsBA,EAAM4I,cACzBC,kBAAkCC,yBAAhB9I,EAAMK,MAAM,CACtC,CAUA,SAAS1D,aAAaqD,IACjB,0BAA4BA,EAAM+I,WAAe,SAAU/I,EACtB8I,wBAAlCD,mBAA0D7I,EAAMK,MAAM,CAC9E,CAWA,SAASwI,kBAAkBG,GACvB,IAGIhJ,EAHAgJ,EAAQC,aAAa,eAAe,IACxCD,EAAQ1B,aAAa,gBAAiB,EAAE,EAEpCtH,EAAQ,IAAIxD,OAAO0M,YAAY,iBAAkB,CACjDC,QAAS,CAAA,EAAMC,WAAY,CAAA,EAAMC,OAAQ,IAC7C,CAAC,EAGIL,EAAQM,cAActJ,CAAK,KAC5BgJ,EAAQO,MAAQ,GAExB,CAWA,SAAST,wBAAwBE,GACxBA,EAAQC,aAAa,eAAe,IACzCD,EAAQQ,gBAAgB,eAAe,EAGvCR,EAAQM,cAAc,IAAI9M,OAAO0M,YAAY,iBAAkB,CAC3DC,QAAS,CAAA,EAAMC,WAAY,CAAA,EAAOC,OAAQ,IAC9C,CAAC,CAAC,EACN,CArSIpN,SAASoH,kBACT7D,2BAA2BjE,SAAU,YAAa4H,mBAAmB,EACrE3D,2BAA2BjE,SAAU,YAAaqH,kBAAkB,EACpEpD,2BAA2BjE,SAAU,UAAWqH,kBAAkB,EAClEpD,2BAA2BjE,SAAU,SAAUoI,gBAAgB"} \ No newline at end of file +{"version":3,"file":"public-2-gathering-data.min.js","sources":["public-2-gathering-data.js"],"sourcesContent":["/**\n * Class for gathering data\n */\nclass ApbctGatheringData { // eslint-disable-line no-unused-vars\n /**\n * Set session ID\n * @return {void}\n */\n setSessionId() {\n if (!apbctSessionStorage.isSet('apbct_session_id')) {\n const sessionID = Math.random().toString(36).replace(/[^a-z]+/g, '').substr(2, 10);\n apbctSessionStorage.set('apbct_session_id', sessionID, false);\n apbctLocalStorage.set('apbct_page_hits', 1);\n if (document.referrer) {\n let urlReferer = new URL(document.referrer);\n if (urlReferer.host !== location.host) {\n apbctSessionStorage.set('apbct_site_referer', document.referrer, false);\n }\n }\n } else {\n apbctLocalStorage.set('apbct_page_hits', Number(apbctLocalStorage.get('apbct_page_hits')) + 1);\n }\n }\n\n /**\n * Set three statements to the sessions storage: apbct_session_current_page, apbct_prev_referer.\n * @return {void}\n */\n writeReferrersToSessionStorage() {\n const sessionCurrentPage = apbctSessionStorage.get('apbct_session_current_page');\n // set session apbct_referer\n if (sessionCurrentPage!== false && document.location.href !== sessionCurrentPage) {\n apbctSessionStorage.set('apbct_prev_referer', sessionCurrentPage, false);\n }\n // set session current page to know referrer\n apbctSessionStorage.set('apbct_session_current_page', document.location.href, false);\n }\n\n /**\n * Set cookies type.\n * If it's not set or not equal to ctPublic.data__cookies_type, clear ct_mouse_moved and ct_has_scrolled values.\n * @return {void}\n */\n setCookiesType() {\n const cookiesType = apbctLocalStorage.get('ct_cookies_type');\n if ( ! cookiesType || cookiesType !== ctPublic.data__cookies_type ) {\n apbctLocalStorage.set('ct_cookies_type', ctPublic.data__cookies_type);\n apbctLocalStorage.delete('ct_mouse_moved');\n apbctLocalStorage.delete('ct_has_scrolled');\n }\n }\n\n /**\n * Start fields listening\n * @return {void}\n */\n startFieldsListening() {\n if (ctPublic.data__cookies_type !== 'alternative') {\n this.startFieldsListening();\n // 2nd try to add listeners for delayed appears forms\n setTimeout(this.startFieldsListening, 1000);\n }\n }\n\n /**\n * Listen autocomplete\n * @return {void}\n */\n listenAutocomplete() {\n window.addEventListener('animationstart', this.apbctOnAnimationStart, true);\n window.addEventListener('input', this.apbctOnInput, true);\n }\n\n /**\n * Gathering typo data\n * @return {void}\n */\n gatheringTypoData() {\n document.ctTypoData = new CTTypoData();\n document.ctTypoData.gatheringFields();\n document.ctTypoData.setListeners();\n }\n\n /**\n * Gathering mouse data\n * @return {void}\n */\n gatheringMouseData() {\n new ApbctCollectingUserMouseActivity();\n }\n\n /**\n * Get screen info\n * @return {string}\n */\n getScreenInfo() {\n // Batch all layout-triggering property reads to avoid forced synchronous layouts\n const docEl = document.documentElement;\n const body = document.body;\n\n // Read all layout properties in one batch\n const layoutData = {\n scrollWidth: docEl.scrollWidth,\n bodyScrollHeight: body.scrollHeight,\n docScrollHeight: docEl.scrollHeight,\n bodyOffsetHeight: body.offsetHeight,\n docOffsetHeight: docEl.offsetHeight,\n bodyClientHeight: body.clientHeight,\n docClientHeight: docEl.clientHeight,\n docClientWidth: docEl.clientWidth,\n };\n\n return JSON.stringify({\n fullWidth: layoutData.scrollWidth,\n fullHeight: Math.max(\n layoutData.bodyScrollHeight, layoutData.docScrollHeight,\n layoutData.bodyOffsetHeight, layoutData.docOffsetHeight,\n layoutData.bodyClientHeight, layoutData.docClientHeight,\n ),\n visibleWidth: layoutData.docClientWidth,\n visibleHeight: layoutData.docClientHeight,\n });\n }\n\n /**\n * Restart listen fields to set ct_has_input_focused or ct_has_key_up\n * @return {void}\n */\n restartFieldsListening() {\n if (!apbctLocalStorage.isSet('ct_has_input_focused') && !apbctLocalStorage.isSet('ct_has_key_up')) {\n this.startFieldsListening();\n }\n }\n\n /**\n * Init listeners for keyup and focus events\n * @return {void}\n */\n startFieldsListening() {\n if (\n (apbctLocalStorage.isSet('ct_has_key_up') || apbctLocalStorage.get('ct_has_key_up')) &&\n (apbctLocalStorage.isSet('ct_has_input_focused') || apbctLocalStorage.get('ct_has_input_focused')) &&\n (\n ctPublic.data__cookies_type === 'native' &&\n ctGetCookie('ct_has_input_focused') !== undefined &&\n ctGetCookie('ct_has_key_up') !== undefined\n )\n ) {\n // already set\n return;\n }\n\n let forms = document.forms;\n ctPublic.handled_fields = [];\n\n if (forms && forms.length > 0) {\n for (let i = 0; i < forms.length; i++) {\n // handle only inputs and textareas\n const handledFormFields = forms[i].querySelectorAll('input,textarea');\n for (let i = 0; i < handledFormFields.length; i++) {\n if (handledFormFields[i].type !== 'hidden') {\n // collect handled fields to remove handler in the future\n ctPublic.handled_fields.push(handledFormFields[i]);\n // do attach handlers\n apbct_attach_event_handler(handledFormFields[i], 'focus', ctFunctionHasInputFocused);\n apbct_attach_event_handler(handledFormFields[i], 'keyup', ctFunctionHasKeyUp);\n }\n }\n }\n }\n }\n}\n\n/**\n * Class collecting user mouse activity data\n *\n */\n// eslint-disable-next-line no-unused-vars, require-jsdoc\nclass ApbctCollectingUserMouseActivity {\n elementBody = document.querySelector('body');\n collectionForms = document.forms;\n /**\n * Constructor\n */\n constructor() {\n this.setListeners();\n }\n\n /**\n * Set listeners\n */\n setListeners() {\n this.elementBody.addEventListener('click', (event) => {\n this.checkElementInForms(event, 'addClicks');\n });\n\n this.elementBody.addEventListener('mouseup', (event) => {\n const selectedType = document.getSelection().type.toString();\n if (selectedType == 'Range') {\n this.addSelected();\n }\n });\n\n this.elementBody.addEventListener('mousemove', (event) => {\n this.checkElementInForms(event, 'trackMouseMovement');\n });\n }\n\n /**\n * Checking if there is an element in the form\n * @param {object} event\n * @param {string} addTarget\n */\n checkElementInForms(event, addTarget) {\n let resultCheck;\n for (let i = 0; i < this.collectionForms.length; i++) {\n if (\n event.target.outerHTML.length > 0 &&\n this.collectionForms[i].innerHTML.length > 0\n ) {\n resultCheck = this.collectionForms[i].innerHTML.indexOf(event.target.outerHTML);\n } else {\n resultCheck = -1;\n }\n }\n\n switch (addTarget) {\n case 'addClicks':\n if (resultCheck < 0) {\n this.addClicks();\n }\n break;\n case 'trackMouseMovement':\n if (resultCheck > -1) {\n this.trackMouseMovement();\n }\n break;\n default:\n break;\n }\n }\n\n /**\n * Add clicks\n */\n addClicks() {\n if (document.ctCollectingUserActivityData) {\n if (document.ctCollectingUserActivityData.clicks) {\n document.ctCollectingUserActivityData.clicks++;\n } else {\n document.ctCollectingUserActivityData.clicks = 1;\n }\n return;\n }\n\n document.ctCollectingUserActivityData = {clicks: 1};\n }\n\n /**\n * Add selected\n */\n addSelected() {\n if (document.ctCollectingUserActivityData) {\n if (document.ctCollectingUserActivityData.selected) {\n document.ctCollectingUserActivityData.selected++;\n } else {\n document.ctCollectingUserActivityData.selected = 1;\n }\n return;\n }\n\n document.ctCollectingUserActivityData = {selected: 1};\n }\n\n /**\n * Track mouse movement\n */\n trackMouseMovement() {\n if (!document.ctCollectingUserActivityData) {\n document.ctCollectingUserActivityData = {};\n }\n if (!document.ctCollectingUserActivityData.mouseMovementsInsideForm) {\n document.ctCollectingUserActivityData.mouseMovementsInsideForm = false;\n }\n\n document.ctCollectingUserActivityData.mouseMovementsInsideForm = true;\n }\n}\n\n/**\n * Class for gathering data about user typing.\n *\n * ==============================\n * isAutoFill - only person can use auto fill\n * isUseBuffer - use buffer for fill current field\n * ==============================\n * lastKeyTimestamp - timestamp of last key press in current field\n * speedDelta - change for each key press in current field,\n * as difference between current and previous key press timestamps,\n * robots in general have constant speed of typing.\n * If speedDelta is constant for each key press in current field,\n * so, speedDelta will be roughly to 0, then it is robot.\n * ==============================\n */\n// eslint-disable-next-line no-unused-vars,require-jsdoc\nclass CTTypoData {\n fieldData = {\n isAutoFill: false,\n isUseBuffer: false,\n speedDelta: 0,\n firstKeyTimestamp: 0,\n lastKeyTimestamp: 0,\n lastDelta: 0,\n countOfKey: 0,\n };\n\n fields = document.querySelectorAll('textarea[name=comment]');\n\n data = [];\n\n /**\n * Gather fields.\n */\n gatheringFields() {\n let fieldSet = Array.prototype.slice.call(this.fields);\n fieldSet.forEach((field, i) => {\n this.data.push(Object.assign({}, this.fieldData));\n });\n }\n\n /**\n * Set listeners.\n */\n setListeners() {\n this.fields.forEach((field, i) => {\n field.addEventListener('paste', () => {\n this.data[i].isUseBuffer = true;\n });\n });\n\n this.fields.forEach((field, i) => {\n field.addEventListener('onautocomplete', () => {\n this.data[i].isAutoFill = true;\n });\n });\n\n this.fields.forEach((field, i) => {\n field.addEventListener('input', () => {\n this.data[i].countOfKey++;\n let time = + new Date();\n let currentDelta = 0;\n\n if (this.data[i].countOfKey === 1) {\n this.data[i].lastKeyTimestamp = time;\n this.data[i].firstKeyTimestamp = time;\n return;\n }\n\n currentDelta = time - this.data[i].lastKeyTimestamp;\n if (this.data[i].countOfKey === 2) {\n this.data[i].lastKeyTimestamp = time;\n this.data[i].lastDelta = currentDelta;\n return;\n }\n\n if (this.data[i].countOfKey > 2) {\n this.data[i].speedDelta += Math.abs(this.data[i].lastDelta - currentDelta);\n this.data[i].lastKeyTimestamp = time;\n this.data[i].lastDelta = currentDelta;\n }\n });\n });\n }\n}\n\n// eslint-disable-next-line camelcase\nconst ctTimeMs = new Date().getTime();\nlet ctMouseEventTimerFlag = true; // Reading interval flag\nlet ctMouseData = [];\nlet ctMouseDataCounter = 0;\nlet ctMouseReadInterval;\nlet ctMouseWriteDataInterval;\n\n\n// Writing first key press timestamp\nconst ctFunctionFirstKey = function output(event) {\n let KeyTimestamp = Math.floor(new Date().getTime() / 1000);\n ctSetCookie('ct_fkp_timestamp', KeyTimestamp);\n ctKeyStopStopListening();\n};\n\n/**\n * Stop mouse observing function\n */\nfunction ctMouseStopData() {\n apbct_remove_event_handler(document, 'mousemove', ctFunctionMouseMove);\n clearInterval(ctMouseReadInterval);\n clearInterval(ctMouseWriteDataInterval);\n}\n\n\n// mouse read\nif (ctPublic.data__key_is_ok) {\n // Reading interval\n ctMouseReadInterval = setInterval(function() {\n ctMouseEventTimerFlag = true;\n }, 150);\n\n // Writting interval\n ctMouseWriteDataInterval = setInterval(function() {\n ctSetCookie('ct_pointer_data', JSON.stringify(ctMouseData));\n }, 1200);\n}\n\n// Logging mouse position each 150 ms\nconst ctFunctionMouseMove = function output(event) {\n ctSetMouseMoved();\n if (ctMouseEventTimerFlag === true) {\n ctMouseData.push([\n Math.round(event.clientY),\n Math.round(event.clientX),\n Math.round(new Date().getTime() - ctTimeMs),\n ]);\n\n ctMouseDataCounter++;\n ctMouseEventTimerFlag = false;\n if (ctMouseDataCounter >= 50) {\n ctMouseStopData();\n }\n }\n};\n\n/**\n * Stop key listening function\n */\nfunction ctKeyStopStopListening() {\n apbct_remove_event_handler(document, 'mousedown', ctFunctionFirstKey);\n apbct_remove_event_handler(document, 'keydown', ctFunctionFirstKey);\n}\n\n/**\n * ctSetHasScrolled\n */\nfunction ctSetHasScrolled() {\n if ( ! apbctLocalStorage.isSet('ct_has_scrolled') || ! apbctLocalStorage.get('ct_has_scrolled') ) {\n ctSetCookie('ct_has_scrolled', 'true');\n apbctLocalStorage.set('ct_has_scrolled', true);\n }\n if (\n ctPublic.data__cookies_type === 'native' &&\n ctGetCookie('ct_has_scrolled') === undefined\n ) {\n ctSetCookie('ct_has_scrolled', 'true');\n }\n}\n\n/**\n * ctSetMouseMoved\n */\nfunction ctSetMouseMoved() {\n if ( ! apbctLocalStorage.isSet('ct_mouse_moved') || ! apbctLocalStorage.get('ct_mouse_moved') ) {\n ctSetCookie('ct_mouse_moved', 'true');\n apbctLocalStorage.set('ct_mouse_moved', true);\n }\n if (\n ctPublic.data__cookies_type === 'native' &&\n ctGetCookie('ct_mouse_moved') === undefined\n ) {\n ctSetCookie('ct_mouse_moved', 'true');\n }\n}\n\n/**\n * stop listening keyup and focus\n * @param {string} eventName\n * @param {string} functionName\n */\nfunction ctStopFieldsListening(eventName, functionName) {\n if (typeof ctPublic.handled_fields !== 'undefined' && ctPublic.handled_fields.length > 0) {\n for (let i = 0; i < ctPublic.handled_fields.length; i++) {\n apbct_remove_event_handler(ctPublic.handled_fields[i], eventName, functionName);\n }\n }\n}\n\nlet ctFunctionHasInputFocused = function output(event) {\n ctSetHasInputFocused();\n ctStopFieldsListening('focus', ctFunctionHasInputFocused);\n};\n\nlet ctFunctionHasKeyUp = function output(event) {\n ctSetHasKeyUp();\n ctStopFieldsListening('keyup', ctFunctionHasKeyUp);\n};\n\n/**\n * set ct_has_input_focused ct_has_key_up cookies on session period\n */\nfunction ctSetHasInputFocused() {\n if ( ! apbctLocalStorage.isSet('ct_has_input_focused') || ! apbctLocalStorage.get('ct_has_input_focused') ) {\n apbctLocalStorage.set('ct_has_input_focused', true);\n }\n if (\n (\n (\n ctPublic.data__cookies_type === 'native' &&\n ctGetCookie('ct_has_input_focused') === undefined\n ) ||\n ctPublic.data__cookies_type === 'alternative'\n ) ||\n (\n ctPublic.data__cookies_type === 'none' &&\n (\n typeof ctPublic.force_alt_cookies !== 'undefined' ||\n (ctPublic.force_alt_cookies !== undefined && ctPublic.force_alt_cookies)\n )\n )\n ) {\n ctSetCookie('ct_has_input_focused', 'true');\n }\n}\n\n/**\n * ctSetHasKeyUp\n */\nfunction ctSetHasKeyUp() {\n if ( ! apbctLocalStorage.isSet('ct_has_key_up') || ! apbctLocalStorage.get('ct_has_key_up') ) {\n apbctLocalStorage.set('ct_has_key_up', true);\n }\n if (\n (\n (\n ctPublic.data__cookies_type === 'native' &&\n ctGetCookie('ct_has_key_up') === undefined\n ) ||\n ctPublic.data__cookies_type === 'alternative'\n ) ||\n (\n ctPublic.data__cookies_type === 'none' &&\n (\n typeof ctPublic.force_alt_cookies !== 'undefined' ||\n (ctPublic.force_alt_cookies !== undefined && ctPublic.force_alt_cookies)\n )\n )\n ) {\n ctSetCookie('ct_has_key_up', 'true');\n }\n}\n\nif (ctPublic.data__key_is_ok) {\n apbct_attach_event_handler(document, 'mousemove', ctFunctionMouseMove);\n apbct_attach_event_handler(document, 'mousedown', ctFunctionFirstKey);\n apbct_attach_event_handler(document, 'keydown', ctFunctionFirstKey);\n apbct_attach_event_handler(document, 'scroll', ctSetHasScrolled);\n}\n\n/**\n * @param {mixed} commonCookies\n * @return {string}\n */\nfunction getJavascriptClientData(commonCookies = []) { // eslint-disable-line no-unused-vars\n let resultDataJson = {};\n\n resultDataJson.ct_checked_emails = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_checked_emails');\n resultDataJson.ct_checked_emails_exist = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_checked_emails_exist');\n resultDataJson.ct_checkjs = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_checkjs');\n resultDataJson.ct_fkp_timestamp = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_fkp_timestamp');\n resultDataJson.ct_pointer_data = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_pointer_data');\n resultDataJson.ct_ps_timestamp = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_ps_timestamp');\n resultDataJson.ct_screen_info = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_screen_info');\n resultDataJson.ct_timezone = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_timezone');\n\n // collecting data from localstorage\n const ctMouseMovedLocalStorage = apbctLocalStorage.get(ctPublicFunctions.cookiePrefix + 'ct_mouse_moved');\n const ctHasScrolledLocalStorage = apbctLocalStorage.get(ctPublicFunctions.cookiePrefix + 'ct_has_scrolled');\n const ctCookiesTypeLocalStorage = apbctLocalStorage.get(ctPublicFunctions.cookiePrefix + 'ct_cookies_type');\n const apbctPageHits = apbctLocalStorage.get('apbct_page_hits');\n const apbctPrevReferer = apbctSessionStorage.get('apbct_prev_referer');\n const apbctSiteReferer = apbctSessionStorage.get('apbct_site_referer');\n const ctJsErrorsLocalStorage = apbctLocalStorage.get(ctPublicFunctions.cookiePrefix + 'ct_js_errors');\n const ctPixelUrl = apbctLocalStorage.get(ctPublicFunctions.cookiePrefix + 'apbct_pixel_url');\n const apbctHeadless = apbctLocalStorage.get(ctPublicFunctions.cookiePrefix + 'apbct_headless');\n const ctBotDetectorFrontendDataLog = apbctLocalStorage.get(\n ctPublicFunctions.cookiePrefix + 'ct_bot_detector_frontend_data_log',\n );\n\n // collecting data from cookies\n const ctMouseMovedCookie = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_mouse_moved');\n const ctHasScrolledCookie = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_has_scrolled');\n const ctCookiesTypeCookie = ctGetCookie(ctPublicFunctions.cookiePrefix + 'ct_cookies_type');\n const ctCookiesPixelUrl = ctGetCookie(ctPublicFunctions.cookiePrefix + 'apbct_pixel_url');\n const apbctHeadlessNative = !!ctGetCookie(ctPublicFunctions.cookiePrefix + 'apbct_headless');\n\n\n resultDataJson.ct_mouse_moved = ctMouseMovedLocalStorage !== undefined ?\n ctMouseMovedLocalStorage : ctMouseMovedCookie;\n resultDataJson.ct_has_scrolled = ctHasScrolledLocalStorage !== undefined ?\n ctHasScrolledLocalStorage : ctHasScrolledCookie;\n resultDataJson.ct_cookies_type = ctCookiesTypeLocalStorage !== undefined ?\n ctCookiesTypeLocalStorage : ctCookiesTypeCookie;\n resultDataJson.apbct_pixel_url = ctPixelUrl !== undefined ?\n ctPixelUrl : ctCookiesPixelUrl;\n resultDataJson.apbct_headless = apbctHeadless !== undefined ?\n apbctHeadless : apbctHeadlessNative;\n resultDataJson.ct_bot_detector_frontend_data_log = ctBotDetectorFrontendDataLog !== undefined ?\n ctBotDetectorFrontendDataLog : '';\n if (resultDataJson.apbct_pixel_url && typeof(resultDataJson.apbct_pixel_url) == 'string') {\n if (resultDataJson.apbct_pixel_url.indexOf('%3A%2F')) {\n resultDataJson.apbct_pixel_url = decodeURIComponent(resultDataJson.apbct_pixel_url);\n }\n }\n\n resultDataJson.apbct_page_hits = apbctPageHits;\n resultDataJson.apbct_prev_referer = apbctPrevReferer;\n resultDataJson.apbct_site_referer = apbctSiteReferer;\n resultDataJson.apbct_ct_js_errors = ctJsErrorsLocalStorage;\n\n if (!resultDataJson.apbct_pixel_url) {\n resultDataJson.apbct_pixel_url = ctPublic.pixel__url;\n }\n\n if (typeof (commonCookies) === 'object') {\n for (let i = 0; i < commonCookies.length; ++i) {\n if ( typeof (commonCookies[i][1]) === 'object' ) {\n // this is for handle SFW cookies\n resultDataJson[commonCookies[i][1][0]] = commonCookies[i][1][1];\n } else {\n resultDataJson[commonCookies[i][0]] = commonCookies[i][1];\n }\n }\n } else {\n console.log('APBCT JS ERROR: Collecting data type mismatch');\n }\n\n // Parse JSON properties to prevent double JSON encoding\n resultDataJson = removeDoubleJsonEncoding(resultDataJson);\n\n\n return JSON.stringify(resultDataJson);\n}\n\n/**\n * @return {bool}\n */\nfunction ctIsDrawPixel() {\n if (ctPublic.pixel__setting == '3' && +ctPublic.bot_detector_enabled) {\n return false;\n }\n\n return +ctPublic.pixel__enabled ||\n (ctPublic.data__cookies_type === 'none' && document.querySelectorAll('img#apbct_pixel').length === 0) ||\n (ctPublic.data__cookies_type === 'alternative' && document.querySelectorAll('img#apbct_pixel').length === 0);\n}\n\n/**\n * @param {string} pixelUrl\n * @return {bool}\n */\nfunction ctSetPixelImg(pixelUrl) {\n if (ctPublic.pixel__setting == '3' && +ctPublic.bot_detector_enabled) {\n return false;\n }\n ctSetCookie('apbct_pixel_url', pixelUrl);\n if ( ctIsDrawPixel() ) {\n if ( ! document.getElementById('apbct_pixel') ) {\n let insertedImg = document.createElement('img');\n insertedImg.setAttribute('alt', 'CleanTalk Pixel');\n insertedImg.setAttribute('title', 'CleanTalk Pixel');\n insertedImg.setAttribute('id', 'apbct_pixel');\n insertedImg.setAttribute('style', 'display: none; left: 99999px;');\n insertedImg.setAttribute('src', pixelUrl);\n apbct('body').append(insertedImg);\n }\n }\n}\n\n/**\n * @param {string} pixelUrl\n * @return {bool}\n */\nfunction ctSetPixelImgFromLocalstorage(pixelUrl) {\n if (ctPublic.pixel__setting == '3' && +ctPublic.bot_detector_enabled) {\n return false;\n }\n if ( ctIsDrawPixel() ) {\n if ( ! document.getElementById('apbct_pixel') ) {\n let insertedImg = document.createElement('img');\n insertedImg.setAttribute('alt', 'CleanTalk Pixel');\n insertedImg.setAttribute('title', 'CleanTalk Pixel');\n insertedImg.setAttribute('id', 'apbct_pixel');\n insertedImg.setAttribute('style', 'display: none; left: 99999px;');\n insertedImg.setAttribute('src', decodeURIComponent(pixelUrl));\n apbct('body').append(insertedImg);\n }\n }\n}\n\n/**\n * ctGetPixelUrl\n * @return {bool}\n */\n// eslint-disable-next-line no-unused-vars, require-jsdoc\nfunction ctGetPixelUrl() {\n if (ctPublic.pixel__setting == '3' && +ctPublic.bot_detector_enabled) {\n return false;\n }\n\n // Check if pixel is already in localstorage and is not outdated\n let localStoragePixelUrl = apbctLocalStorage.get('apbct_pixel_url');\n if ( localStoragePixelUrl !== false ) {\n if ( ! apbctLocalStorage.isAlive('apbct_pixel_url', 3600 * 3) ) {\n apbctLocalStorage.delete('apbct_pixel_url');\n } else {\n // if so - load pixel from localstorage and draw it skipping AJAX\n ctSetPixelImgFromLocalstorage(localStoragePixelUrl);\n return;\n }\n }\n // Using REST API handler\n if ( ctPublicFunctions.data__ajax_type === 'rest' ) {\n apbct_public_sendREST(\n 'apbct_get_pixel_url',\n {\n method: 'POST',\n callback: function(result) {\n if (result &&\n (typeof result === 'string' || result instanceof String) && result.indexOf('https') === 0) {\n // set pixel url to localstorage\n if ( ! apbctLocalStorage.get('apbct_pixel_url') ) {\n // set pixel to the storage\n apbctLocalStorage.set('apbct_pixel_url', result);\n // update pixel data in the hidden fields\n ctNoCookieAttachHiddenFieldsToForms();\n }\n // then run pixel drawing\n ctSetPixelImg(result);\n }\n },\n },\n );\n // Using AJAX request and handler\n } else {\n apbct_public_sendAJAX(\n {\n action: 'apbct_get_pixel_url',\n },\n {\n notJson: true,\n callback: function(result) {\n if (result &&\n (typeof result === 'string' || result instanceof String) && result.indexOf('https') === 0) {\n // set pixel url to localstorage\n if ( ! apbctLocalStorage.get('apbct_pixel_url') ) {\n // set pixel to the storage\n apbctLocalStorage.set('apbct_pixel_url', result);\n // update pixel data in the hidden fields\n ctNoCookieAttachHiddenFieldsToForms();\n }\n // then run pixel drawing\n ctSetPixelImg(result);\n }\n },\n beforeSend: function(xhr) {\n xhr.setRequestHeader('X-Robots-Tag', 'noindex, nofollow');\n },\n },\n );\n }\n}\n\n// eslint-disable-next-line no-unused-vars,require-jsdoc\nfunction ctSetPixelUrlLocalstorage(ajaxPixelUrl) {\n // set pixel to the storage\n ctSetCookie('apbct_pixel_url', ajaxPixelUrl);\n}\n\n/**\n * Handler for -webkit based browser that listen for a custom\n * animation create using the :pseudo-selector in the stylesheet.\n * Works with Chrome, Safari\n *\n * @param {AnimationEvent} event\n */\n// eslint-disable-next-line no-unused-vars,require-jsdoc\nfunction apbctOnAnimationStart(event) {\n ('onautofillstart' === event.animationName) ?\n apbctAutocomplete(event.target) : apbctCancelAutocomplete(event.target);\n}\n\n/**\n * Handler for non-webkit based browser that listen for input\n * event to trigger the autocomplete-cancel process.\n * Works with Firefox, Edge, IE11\n *\n * @param {InputEvent} event\n */\n// eslint-disable-next-line no-unused-vars,require-jsdoc\nfunction apbctOnInput(event) {\n ('insertReplacementText' === event.inputType || !('data' in event)) ?\n apbctAutocomplete(event.target) : apbctCancelAutocomplete(event.target);\n}\n\n/**\n * Manage an input element when its value is autocompleted\n * by the browser in the following steps:\n * - add [autocompleted] attribute from event.target\n * - create 'onautocomplete' cancelable CustomEvent\n * - dispatch the Event\n *\n * @param {HtmlInputElement} element\n */\nfunction apbctAutocomplete(element) {\n if (element.hasAttribute('autocompleted')) return;\n element.setAttribute('autocompleted', '');\n\n let event = new window.CustomEvent('onautocomplete', {\n bubbles: true, cancelable: true, detail: null,\n });\n\n // no autofill if preventDefault is called\n if (!element.dispatchEvent(event)) {\n element.value = '';\n }\n}\n\n/**\n * Manage an input element when its autocompleted value is\n * removed by the browser in the following steps:\n * - remove [autocompleted] attribute from event.target\n * - create 'onautocomplete' non-cancelable CustomEvent\n * - dispatch the Event\n *\n * @param {HtmlInputElement} element\n */\nfunction apbctCancelAutocomplete(element) {\n if (!element.hasAttribute('autocompleted')) return;\n element.removeAttribute('autocompleted');\n\n // dispatch event\n element.dispatchEvent(new window.CustomEvent('onautocomplete', {\n bubbles: true, cancelable: false, detail: null,\n }));\n}\n"],"names":["ApbctGatheringData","setSessionId","sessionID","apbctSessionStorage","isSet","apbctLocalStorage","set","Number","get","Math","random","toString","replace","substr","document","referrer","URL","host","location","writeReferrersToSessionStorage","sessionCurrentPage","href","setCookiesType","cookiesType","ctPublic","data__cookies_type","delete","startFieldsListening","this","setTimeout","listenAutocomplete","window","addEventListener","apbctOnAnimationStart","apbctOnInput","gatheringTypoData","ctTypoData","CTTypoData","gatheringFields","setListeners","gatheringMouseData","ApbctCollectingUserMouseActivity","getScreenInfo","docEl","documentElement","body","layoutData","scrollWidth","bodyScrollHeight","scrollHeight","docScrollHeight","bodyOffsetHeight","offsetHeight","docOffsetHeight","bodyClientHeight","clientHeight","docClientHeight","docClientWidth","clientWidth","JSON","stringify","fullWidth","fullHeight","max","visibleWidth","visibleHeight","restartFieldsListening","undefined","ctGetCookie","let","forms","handled_fields","length","i","handledFormFields","querySelectorAll","type","push","apbct_attach_event_handler","ctFunctionHasInputFocused","ctFunctionHasKeyUp","elementBody","querySelector","collectionForms","constructor","checkElementInForms","event","getSelection","addSelected","addTarget","resultCheck","target","outerHTML","innerHTML","indexOf","addClicks","trackMouseMovement","ctCollectingUserActivityData","clicks","selected","mouseMovementsInsideForm","fieldData","isAutoFill","isUseBuffer","speedDelta","firstKeyTimestamp","lastKeyTimestamp","lastDelta","countOfKey","fields","data","Array","prototype","slice","call","forEach","field","Object","assign","currentDelta","time","Date","abs","ctTimeMs","getTime","ctMouseEventTimerFlag","ctMouseData","ctMouseDataCounter","ctMouseReadInterval","ctMouseWriteDataInterval","ctFunctionFirstKey","KeyTimestamp","floor","ctSetCookie","ctKeyStopStopListening","ctMouseStopData","apbct_remove_event_handler","ctFunctionMouseMove","clearInterval","data__key_is_ok","setInterval","ctSetMouseMoved","round","clientY","clientX","ctSetHasScrolled","ctStopFieldsListening","eventName","functionName","ctSetHasInputFocused","ctSetHasKeyUp","force_alt_cookies","getJavascriptClientData","commonCookies","resultDataJson","ct_checked_emails","ctPublicFunctions","cookiePrefix","ct_checked_emails_exist","ct_checkjs","ct_fkp_timestamp","ct_pointer_data","ct_ps_timestamp","ct_screen_info","ct_timezone","ctMouseMovedLocalStorage","ctHasScrolledLocalStorage","ctCookiesTypeLocalStorage","apbctPageHits","apbctPrevReferer","apbctSiteReferer","ctJsErrorsLocalStorage","ctPixelUrl","apbctHeadless","ctBotDetectorFrontendDataLog","ctMouseMovedCookie","ctHasScrolledCookie","ctCookiesTypeCookie","ctCookiesPixelUrl","apbctHeadlessNative","ct_mouse_moved","ct_has_scrolled","ct_cookies_type","apbct_pixel_url","apbct_headless","ct_bot_detector_frontend_data_log","decodeURIComponent","apbct_page_hits","apbct_prev_referer","apbct_site_referer","apbct_ct_js_errors","pixel__url","console","log","removeDoubleJsonEncoding","ctIsDrawPixel","pixel__setting","bot_detector_enabled","pixel__enabled","ctSetPixelImg","pixelUrl","insertedImg","getElementById","createElement","setAttribute","apbct","append","ctSetPixelImgFromLocalstorage","ctGetPixelUrl","localStoragePixelUrl","isAlive","data__ajax_type","apbct_public_sendREST","method","callback","result","String","ctNoCookieAttachHiddenFieldsToForms","apbct_public_sendAJAX","action","notJson","beforeSend","xhr","setRequestHeader","ctSetPixelUrlLocalstorage","ajaxPixelUrl","animationName","apbctAutocomplete","apbctCancelAutocomplete","inputType","element","hasAttribute","CustomEvent","bubbles","cancelable","detail","dispatchEvent","value","removeAttribute"],"mappings":"MAGMA,mBAKFC,eACI,IACUC,EADLC,oBAAoBC,MAAM,kBAAkB,EAW7CC,kBAAkBC,IAAI,kBAAmBC,OAAOF,kBAAkBG,IAAI,iBAAiB,CAAC,EAAI,CAAC,GAVvFN,EAAYO,KAAKC,OAAO,EAAEC,SAAS,EAAE,EAAEC,QAAQ,WAAY,EAAE,EAAEC,OAAO,EAAG,EAAE,EACjFV,oBAAoBG,IAAI,mBAAoBJ,EAAW,CAAA,CAAK,EAC5DG,kBAAkBC,IAAI,kBAAmB,CAAC,EACtCQ,SAASC,UACQ,IAAIC,IAAIF,SAASC,QAAQ,EAC3BE,OAASC,SAASD,MAC7Bd,oBAAoBG,IAAI,qBAAsBQ,SAASC,SAAU,CAAA,CAAK,EAMtF,CAMAI,iCACI,IAAMC,EAAqBjB,oBAAoBK,IAAI,4BAA4B,EAErD,CAAA,IAAtBY,GAA+BN,SAASI,SAASG,OAASD,GAC1DjB,oBAAoBG,IAAI,qBAAsBc,EAAoB,CAAA,CAAK,EAG3EjB,oBAAoBG,IAAI,6BAA8BQ,SAASI,SAASG,KAAM,CAAA,CAAK,CACvF,CAOAC,iBACI,IAAMC,EAAclB,kBAAkBG,IAAI,iBAAiB,EACpDe,GAAeA,IAAgBC,SAASC,qBAC3CpB,kBAAkBC,IAAI,kBAAmBkB,SAASC,kBAAkB,EACpEpB,kBAAkBqB,OAAO,gBAAgB,EACzCrB,kBAAkBqB,OAAO,iBAAiB,EAElD,CAMAC,uBACwC,gBAAhCH,SAASC,qBACTG,KAAKD,qBAAqB,EAE1BE,WAAWD,KAAKD,qBAAsB,GAAI,EAElD,CAMAG,qBACIC,OAAOC,iBAAiB,iBAAkBJ,KAAKK,sBAAuB,CAAA,CAAI,EAC1EF,OAAOC,iBAAiB,QAASJ,KAAKM,aAAc,CAAA,CAAI,CAC5D,CAMAC,oBACIrB,SAASsB,WAAa,IAAIC,WAC1BvB,SAASsB,WAAWE,gBAAgB,EACpCxB,SAASsB,WAAWG,aAAa,CACrC,CAMAC,qBACI,IAAIC,gCACR,CAMAC,gBAEI,IAAMC,EAAQ7B,SAAS8B,gBACjBC,EAAO/B,SAAS+B,KAGhBC,EAAa,CACfC,YAAaJ,EAAMI,YACnBC,iBAAkBH,EAAKI,aACvBC,gBAAiBP,EAAMM,aACvBE,iBAAkBN,EAAKO,aACvBC,gBAAiBV,EAAMS,aACvBE,iBAAkBT,EAAKU,aACvBC,gBAAiBb,EAAMY,aACvBE,eAAgBd,EAAMe,WAC1B,EAEA,OAAOC,KAAKC,UAAU,CAClBC,UAAWf,EAAWC,YACtBe,WAAYrD,KAAKsD,IACbjB,EAAWE,iBAAkBF,EAAWI,gBACxCJ,EAAWK,iBAAkBL,EAAWO,gBACxCP,EAAWQ,iBAAkBR,EAAWU,eAC5C,EACAQ,aAAclB,EAAWW,eACzBQ,cAAenB,EAAWU,eAC9B,CAAC,CACL,CAMAU,yBACS7D,kBAAkBD,MAAM,sBAAsB,GAAMC,kBAAkBD,MAAM,eAAe,GAC5FwB,KAAKD,qBAAqB,CAElC,CAMAA,uBACI,GACKtB,CAAAA,kBAAkBD,MAAM,eAAe,GAAKC,CAAAA,kBAAkBG,IAAI,eAAe,GACjFH,CAAAA,kBAAkBD,MAAM,sBAAsB,GAAKC,CAAAA,kBAAkBG,IAAI,sBAAsB,GAE5D,WAAhCgB,SAASC,oBAC+B0C,KAAAA,IAAxCC,YAAY,sBAAsB,GACDD,KAAAA,IAAjCC,YAAY,eAAe,EANnC,CAaAC,IAAIC,EAAQxD,SAASwD,MAGrB,GAFA9C,SAAS+C,eAAiB,GAEtBD,GAAwB,EAAfA,EAAME,OACf,IAAKH,IAAII,EAAI,EAAGA,EAAIH,EAAME,OAAQC,CAAC,GAAI,CAEnC,IAAMC,EAAoBJ,EAAMG,GAAGE,iBAAiB,gBAAgB,EACpE,IAAKN,IAAII,EAAI,EAAGA,EAAIC,EAAkBF,OAAQC,CAAC,GACT,WAA9BC,EAAkBD,GAAGG,OAErBpD,SAAS+C,eAAeM,KAAKH,EAAkBD,EAAE,EAEjDK,2BAA2BJ,EAAkBD,GAAI,QAASM,yBAAyB,EACnFD,2BAA2BJ,EAAkBD,GAAI,QAASO,kBAAkB,EAGxF,CAlBJ,CAoBJ,CACJ,OAOMvC,iCACFwC,YAAcnE,SAASoE,cAAc,MAAM,EAC3CC,gBAAkBrE,SAASwD,MAI3Bc,cACIxD,KAAKW,aAAa,CACtB,CAKAA,eACIX,KAAKqD,YAAYjD,iBAAiB,QAAS,IACvCJ,KAAKyD,oBAAoBC,EAAO,WAAW,CAC/C,CAAC,EAED1D,KAAKqD,YAAYjD,iBAAiB,UAAW,IAErB,SADClB,SAASyE,aAAa,EAAEX,KAAKjE,SAAS,GAEvDiB,KAAK4D,YAAY,CAEzB,CAAC,EAED5D,KAAKqD,YAAYjD,iBAAiB,YAAa,IAC3CJ,KAAKyD,oBAAoBC,EAAO,oBAAoB,CACxD,CAAC,CACL,CAOAD,oBAAoBC,EAAOG,GACvBpB,IAAIqB,EACJ,IAAKrB,IAAII,EAAI,EAAGA,EAAI7C,KAAKuD,gBAAgBX,OAAQC,CAAC,GAK1CiB,EAHgC,EAAhCJ,EAAMK,OAAOC,UAAUpB,QACoB,EAA3C5C,KAAKuD,gBAAgBV,GAAGoB,UAAUrB,OAEpB5C,KAAKuD,gBAAgBV,GAAGoB,UAAUC,QAAQR,EAAMK,OAAOC,SAAS,EAEhE,CAAC,EAIvB,OAAQH,GACR,IAAK,YACGC,EAAc,GACd9D,KAAKmE,UAAU,EAEnB,MACJ,IAAK,qBACiB,CAAC,EAAfL,GACA9D,KAAKoE,mBAAmB,CAKhC,CACJ,CAKAD,YACQjF,SAASmF,6BACLnF,SAASmF,6BAA6BC,OACtCpF,SAASmF,6BAA6BC,MAAM,GAE5CpF,SAASmF,6BAA6BC,OAAS,EAKvDpF,SAASmF,6BAA+B,CAACC,OAAQ,CAAC,CACtD,CAKAV,cACQ1E,SAASmF,6BACLnF,SAASmF,6BAA6BE,SACtCrF,SAASmF,6BAA6BE,QAAQ,GAE9CrF,SAASmF,6BAA6BE,SAAW,EAKzDrF,SAASmF,6BAA+B,CAACE,SAAU,CAAC,CACxD,CAKAH,qBACSlF,SAASmF,+BACVnF,SAASmF,6BAA+B,IAEvCnF,SAASmF,6BAA6BG,2BACvCtF,SAASmF,6BAA6BG,yBAA2B,CAAA,GAGrEtF,SAASmF,6BAA6BG,yBAA2B,CAAA,CACrE,CACJ,OAkBM/D,WACFgE,UAAY,CACRC,WAAY,CAAA,EACZC,YAAa,CAAA,EACbC,WAAY,EACZC,kBAAmB,EACnBC,iBAAkB,EAClBC,UAAW,EACXC,WAAY,CAChB,EAEAC,OAAS/F,SAAS6D,iBAAiB,wBAAwB,EAE3DmC,KAAO,GAKPxE,kBACmByE,MAAMC,UAAUC,MAAMC,KAAKtF,KAAKiF,MAAM,EAC5CM,QAAQ,CAACC,EAAO3C,KACrB7C,KAAKkF,KAAKjC,KAAKwC,OAAOC,OAAO,GAAI1F,KAAKyE,SAAS,CAAC,CACpD,CAAC,CACL,CAKA9D,eACIX,KAAKiF,OAAOM,QAAQ,CAACC,EAAO3C,KACxB2C,EAAMpF,iBAAiB,QAAS,KAC5BJ,KAAKkF,KAAKrC,GAAG8B,YAAc,CAAA,CAC/B,CAAC,CACL,CAAC,EAED3E,KAAKiF,OAAOM,QAAQ,CAACC,EAAO3C,KACxB2C,EAAMpF,iBAAiB,iBAAkB,KACrCJ,KAAKkF,KAAKrC,GAAG6B,WAAa,CAAA,CAC9B,CAAC,CACL,CAAC,EAED1E,KAAKiF,OAAOM,QAAQ,CAACC,EAAO3C,KACxB2C,EAAMpF,iBAAiB,QAAS,KAC5BJ,KAAKkF,KAAKrC,GAAGmC,UAAU,GACvBvC,IACIkD,EADAC,EAAO,CAAE,IAAIC,KAGe,IAA5B7F,KAAKkF,KAAKrC,GAAGmC,YACbhF,KAAKkF,KAAKrC,GAAGiC,iBAAmBc,EAChC5F,KAAKkF,KAAKrC,GAAGgC,kBAAoBe,IAIrCD,EAAeC,EAAO5F,KAAKkF,KAAKrC,GAAGiC,iBACH,IAA5B9E,KAAKkF,KAAKrC,GAAGmC,YACbhF,KAAKkF,KAAKrC,GAAGiC,iBAAmBc,EAChC5F,KAAKkF,KAAKrC,GAAGkC,UAAYY,GAIC,EAA1B3F,KAAKkF,KAAKrC,GAAGmC,aACbhF,KAAKkF,KAAKrC,GAAG+B,YAAc/F,KAAKiH,IAAI9F,KAAKkF,KAAKrC,GAAGkC,UAAYY,CAAY,EACzE3F,KAAKkF,KAAKrC,GAAGiC,iBAAmBc,EAChC5F,KAAKkF,KAAKrC,GAAGkC,UAAYY,GAEjC,CAAC,CACL,CAAC,CACL,CACJ,CAGA,IAAMI,UAAW,IAAIF,MAAOG,QAAQ,EAChCC,sBAAwB,CAAA,EACxBC,YAAc,GACdC,mBAAqB,EACrBC,oBACAC,yBAIEC,mBAAqB,SAAgB5C,GACvCjB,IAAI8D,EAAe1H,KAAK2H,OAAM,IAAIX,MAAOG,QAAQ,EAAI,GAAI,EACzDS,YAAY,mBAAoBF,CAAY,EAC5CG,uBAAuB,CAC3B,EAKA,SAASC,kBACLC,2BAA2B1H,SAAU,YAAa2H,mBAAmB,EACrEC,cAAcV,mBAAmB,EACjCU,cAAcT,wBAAwB,CAC1C,CAIIzG,SAASmH,kBAETX,oBAAsBY,YAAY,WAC9Bf,sBAAwB,CAAA,CAC5B,EAAG,GAAG,EAGNI,yBAA2BW,YAAY,WACnCP,YAAY,kBAAmB1E,KAAKC,UAAUkE,WAAW,CAAC,CAC9D,EAAG,IAAI,GAIX,IAAMW,oBAAsB,SAAgBnD,GACxCuD,gBAAgB,EACc,CAAA,IAA1BhB,wBACAC,YAAYjD,KAAK,CACbpE,KAAKqI,MAAMxD,EAAMyD,OAAO,EACxBtI,KAAKqI,MAAMxD,EAAM0D,OAAO,EACxBvI,KAAKqI,OAAM,IAAIrB,MAAOG,QAAQ,EAAID,QAAQ,EAC7C,EAEDI,kBAAkB,GAClBF,sBAAwB,CAAA,EACE,IAAtBE,qBACAQ,gBAAgB,CAG5B,EAKA,SAASD,yBACLE,2BAA2B1H,SAAU,YAAaoH,kBAAkB,EACpEM,2BAA2B1H,SAAU,UAAWoH,kBAAkB,CACtE,CAKA,SAASe,mBACE5I,kBAAkBD,MAAM,iBAAiB,GAAOC,kBAAkBG,IAAI,iBAAiB,IAC1F6H,YAAY,kBAAmB,MAAM,EACrChI,kBAAkBC,IAAI,kBAAmB,CAAA,CAAI,GAGb,WAAhCkB,SAASC,oBAC0B0C,KAAAA,IAAnCC,YAAY,iBAAiB,GAE7BiE,YAAY,kBAAmB,MAAM,CAE7C,CAKA,SAASQ,kBACExI,kBAAkBD,MAAM,gBAAgB,GAAOC,kBAAkBG,IAAI,gBAAgB,IACxF6H,YAAY,iBAAkB,MAAM,EACpChI,kBAAkBC,IAAI,iBAAkB,CAAA,CAAI,GAGZ,WAAhCkB,SAASC,oBACyB0C,KAAAA,IAAlCC,YAAY,gBAAgB,GAE5BiE,YAAY,iBAAkB,MAAM,CAE5C,CAOA,SAASa,sBAAsBC,EAAWC,GACtC,GAAuC,KAAA,IAA5B5H,SAAS+C,gBAAmE,EAAjC/C,SAAS+C,eAAeC,OAC1E,IAAKH,IAAII,EAAI,EAAGA,EAAIjD,SAAS+C,eAAeC,OAAQC,CAAC,GACjD+D,2BAA2BhH,SAAS+C,eAAeE,GAAI0E,EAAWC,CAAY,CAG1F,CAEA/E,IAAIU,0BAA4B,SAAgBO,GAC5C+D,qBAAqB,EACrBH,sBAAsB,QAASnE,yBAAyB,CAC5D,EAEIC,mBAAqB,SAAgBM,GACrCgE,cAAc,EACdJ,sBAAsB,QAASlE,kBAAkB,CACrD,EAKA,SAASqE,uBACEhJ,kBAAkBD,MAAM,sBAAsB,GAAOC,kBAAkBG,IAAI,sBAAsB,GACpGH,kBAAkBC,IAAI,uBAAwB,CAAA,CAAI,GAKV,WAAhCkB,SAASC,oBAC+B0C,KAAAA,IAAxCC,YAAY,sBAAsB,GAEN,gBAAhC5C,SAASC,oBAGuB,SAAhCD,SAASC,qBAEiC,KAAA,IAA/BD,SAAS+H,mBACgBpF,KAAAA,IAA/B3C,SAAS+H,mBAAmC/H,SAAS+H,qBAI9DlB,YAAY,uBAAwB,MAAM,CAElD,CAKA,SAASiB,gBACEjJ,kBAAkBD,MAAM,eAAe,GAAOC,kBAAkBG,IAAI,eAAe,GACtFH,kBAAkBC,IAAI,gBAAiB,CAAA,CAAI,GAKH,WAAhCkB,SAASC,oBACwB0C,KAAAA,IAAjCC,YAAY,eAAe,GAEC,gBAAhC5C,SAASC,oBAGuB,SAAhCD,SAASC,qBAEiC,KAAA,IAA/BD,SAAS+H,mBACgBpF,KAAAA,IAA/B3C,SAAS+H,mBAAmC/H,SAAS+H,qBAI9DlB,YAAY,gBAAiB,MAAM,CAE3C,CAaA,SAASmB,wBAAwBC,EAAgB,IAC7CpF,IAAIqF,EAAiB,GAErBA,EAAeC,kBAAoBvF,YAAYwF,kBAAkBC,aAAe,mBAAmB,EACnGH,EAAeI,wBAA0B1F,YAAYwF,kBAAkBC,aAAe,yBAAyB,EAC/GH,EAAeK,WAAa3F,YAAYwF,kBAAkBC,aAAe,YAAY,EACrFH,EAAeM,iBAAmB5F,YAAYwF,kBAAkBC,aAAe,kBAAkB,EACjGH,EAAeO,gBAAkB7F,YAAYwF,kBAAkBC,aAAe,iBAAiB,EAC/FH,EAAeQ,gBAAkB9F,YAAYwF,kBAAkBC,aAAe,iBAAiB,EAC/FH,EAAeS,eAAiB/F,YAAYwF,kBAAkBC,aAAe,gBAAgB,EAC7FH,EAAeU,YAAchG,YAAYwF,kBAAkBC,aAAe,aAAa,EAGvF,IAAMQ,EAA2BhK,kBAAkBG,IAAIoJ,kBAAkBC,aAAe,gBAAgB,EAClGS,EAA4BjK,kBAAkBG,IAAIoJ,kBAAkBC,aAAe,iBAAiB,EACpGU,EAA4BlK,kBAAkBG,IAAIoJ,kBAAkBC,aAAe,iBAAiB,EACpGW,EAAgBnK,kBAAkBG,IAAI,iBAAiB,EACvDiK,EAAmBtK,oBAAoBK,IAAI,oBAAoB,EAC/DkK,EAAmBvK,oBAAoBK,IAAI,oBAAoB,EAC/DmK,EAAyBtK,kBAAkBG,IAAIoJ,kBAAkBC,aAAe,cAAc,EAC9Fe,EAAavK,kBAAkBG,IAAIoJ,kBAAkBC,aAAe,iBAAiB,EACrFgB,EAAgBxK,kBAAkBG,IAAIoJ,kBAAkBC,aAAe,gBAAgB,EACvFiB,EAA+BzK,kBAAkBG,IACnDoJ,kBAAkBC,aAAe,mCACrC,EAGMkB,EAAqB3G,YAAYwF,kBAAkBC,aAAe,gBAAgB,EAClFmB,EAAsB5G,YAAYwF,kBAAkBC,aAAe,iBAAiB,EACpFoB,EAAsB7G,YAAYwF,kBAAkBC,aAAe,iBAAiB,EACpFqB,EAAoB9G,YAAYwF,kBAAkBC,aAAe,iBAAiB,EAClFsB,EAAsB,CAAC,CAAC/G,YAAYwF,kBAAkBC,aAAe,gBAAgB,EA8B3F,GA3BAH,EAAe0B,eAA8CjH,KAAAA,IAA7BkG,EAC5BA,EAA2BU,EAC/BrB,EAAe2B,gBAAgDlH,KAAAA,IAA9BmG,EAC7BA,EAA4BU,EAChCtB,EAAe4B,gBAAgDnH,KAAAA,IAA9BoG,EAC7BA,EAA4BU,EAChCvB,EAAe6B,gBAAiCpH,KAAAA,IAAfyG,EAC7BA,EAAaM,EACjBxB,EAAe8B,eAAmCrH,KAAAA,IAAlB0G,EAC5BA,EAAgBM,EACpBzB,EAAe+B,kCAAqEtH,KAAAA,IAAjC2G,EAC/CA,EAA+B,GAC/BpB,EAAe6B,iBAA6D,UAA1C,OAAO7B,EAA8B,iBACnEA,EAAe6B,gBAAgBzF,QAAQ,QAAQ,IAC/C4D,EAAe6B,gBAAkBG,mBAAmBhC,EAAe6B,eAAe,GAI1F7B,EAAeiC,gBAAkBnB,EACjCd,EAAekC,mBAAqBnB,EACpCf,EAAemC,mBAAqBnB,EACpChB,EAAeoC,mBAAqBnB,EAE/BjB,EAAe6B,kBAChB7B,EAAe6B,gBAAkB/J,SAASuK,YAGf,UAA3B,OAAO,EACP,IAAK1H,IAAII,EAAI,EAAGA,EAAIgF,EAAcjF,OAAQ,EAAEC,EACF,UAAjC,OAAQgF,EAAchF,GAAG,GAE1BiF,EAAeD,EAAchF,GAAG,GAAG,IAAMgF,EAAchF,GAAG,GAAG,GAE7DiF,EAAeD,EAAchF,GAAG,IAAMgF,EAAchF,GAAG,QAI/DuH,QAAQC,IAAI,+CAA+C,EAO/D,OAHAvC,EAAiBwC,yBAAyBxC,CAAc,EAGjD/F,KAAKC,UAAU8F,CAAc,CACxC,CAKA,SAASyC,gBACL,OAA+B,KAA3B3K,SAAS4K,gBAAyB,CAAA,CAAC5K,SAAS6K,wBAIzC,CAAC7K,SAAS8K,gBACoB,SAAhC9K,SAASC,oBAAyF,IAAxDX,SAAS6D,iBAAiB,iBAAiB,EAAEH,QACvD,gBAAhChD,SAASC,oBAAgG,IAAxDX,SAAS6D,iBAAiB,iBAAiB,EAAEH,OACvG,CAMA,SAAS+H,cAAcC,GACnB,GAA+B,KAA3BhL,SAAS4K,gBAAyB,CAAC5K,SAAS6K,qBAC5C,MAAO,CAAA,EAGX,IAEYI,EAHZpE,YAAY,kBAAmBmE,CAAQ,EAClCL,cAAc,GACRrL,CAAAA,SAAS4L,eAAe,aAAa,KACpCD,EAAc3L,SAAS6L,cAAc,KAAK,GAClCC,aAAa,MAAO,iBAAiB,EACjDH,EAAYG,aAAa,QAAS,iBAAiB,EACnDH,EAAYG,aAAa,KAAM,aAAa,EAC5CH,EAAYG,aAAa,QAAS,+BAA+B,EACjEH,EAAYG,aAAa,MAAOJ,CAAQ,EACxCK,MAAM,MAAM,EAAEC,OAAOL,CAAW,EAG5C,CAMA,SAASM,8BAA8BP,GACnC,GAA+B,KAA3BhL,SAAS4K,gBAAyB,CAAC5K,SAAS6K,qBAC5C,MAAO,CAAA,EAEX,IAEYI,EAFPN,cAAc,GACRrL,CAAAA,SAAS4L,eAAe,aAAa,KACpCD,EAAc3L,SAAS6L,cAAc,KAAK,GAClCC,aAAa,MAAO,iBAAiB,EACjDH,EAAYG,aAAa,QAAS,iBAAiB,EACnDH,EAAYG,aAAa,KAAM,aAAa,EAC5CH,EAAYG,aAAa,QAAS,+BAA+B,EACjEH,EAAYG,aAAa,MAAOlB,mBAAmBc,CAAQ,CAAC,EAC5DK,MAAM,MAAM,EAAEC,OAAOL,CAAW,EAG5C,CAOA,SAASO,gBACL,GAA+B,KAA3BxL,SAAS4K,gBAAyB,CAAC5K,SAAS6K,qBAC5C,MAAO,CAAA,EAIXhI,IAAI4I,EAAuB5M,kBAAkBG,IAAI,iBAAiB,EAClE,GAA8B,CAAA,IAAzByM,EAAiC,CAClC,GAAO5M,kBAAkB6M,QAAQ,kBAAmB,KAAQ,EAKxD,OADAH,KAAAA,8BAA8BE,CAAoB,EAHlD5M,kBAAkBqB,OAAO,iBAAiB,CAMlD,CAE2C,SAAtCkI,kBAAkBuD,gBACnBC,sBACI,sBACA,CACIC,OAAQ,OACRC,SAAU,SAASC,GACXA,IACmB,UAAlB,OAAOA,GAAuBA,aAAkBC,SAAuC,IAA5BD,EAAOzH,QAAQ,OAAO,IAE3EzF,kBAAkBG,IAAI,iBAAiB,IAE1CH,kBAAkBC,IAAI,kBAAmBiN,CAAM,EAE/CE,oCAAoC,GAGxClB,cAAcgB,CAAM,EAE5B,CACJ,CACJ,EAGAG,sBACI,CACIC,OAAQ,qBACZ,EACA,CACIC,QAAS,CAAA,EACTN,SAAU,SAASC,GACXA,IACmB,UAAlB,OAAOA,GAAuBA,aAAkBC,SAAuC,IAA5BD,EAAOzH,QAAQ,OAAO,IAE3EzF,kBAAkBG,IAAI,iBAAiB,IAE1CH,kBAAkBC,IAAI,kBAAmBiN,CAAM,EAE/CE,oCAAoC,GAGxClB,cAAcgB,CAAM,EAE5B,EACAM,WAAY,SAASC,GACjBA,EAAIC,iBAAiB,eAAgB,mBAAmB,CAC5D,CACJ,CACJ,CAER,CAGA,SAASC,0BAA0BC,GAE/B5F,YAAY,kBAAmB4F,CAAY,CAC/C,CAUA,SAAShM,sBAAsBqD,IAC1B,oBAAsBA,EAAM4I,cACzBC,kBAAkCC,yBAAhB9I,EAAMK,MAAM,CACtC,CAUA,SAASzD,aAAaoD,IACjB,0BAA4BA,EAAM+I,WAAe,SAAU/I,EACtB8I,wBAAlCD,mBAA0D7I,EAAMK,MAAM,CAC9E,CAWA,SAASwI,kBAAkBG,GACvB,IAGIhJ,EAHAgJ,EAAQC,aAAa,eAAe,IACxCD,EAAQ1B,aAAa,gBAAiB,EAAE,EAEpCtH,EAAQ,IAAIvD,OAAOyM,YAAY,iBAAkB,CACjDC,QAAS,CAAA,EAAMC,WAAY,CAAA,EAAMC,OAAQ,IAC7C,CAAC,EAGIL,EAAQM,cAActJ,CAAK,KAC5BgJ,EAAQO,MAAQ,GAExB,CAWA,SAAST,wBAAwBE,GACxBA,EAAQC,aAAa,eAAe,IACzCD,EAAQQ,gBAAgB,eAAe,EAGvCR,EAAQM,cAAc,IAAI7M,OAAOyM,YAAY,iBAAkB,CAC3DC,QAAS,CAAA,EAAMC,WAAY,CAAA,EAAOC,OAAQ,IAC9C,CAAC,CAAC,EACN,CArSInN,SAASmH,kBACT7D,2BAA2BhE,SAAU,YAAa2H,mBAAmB,EACrE3D,2BAA2BhE,SAAU,YAAaoH,kBAAkB,EACpEpD,2BAA2BhE,SAAU,UAAWoH,kBAAkB,EAClEpD,2BAA2BhE,SAAU,SAAUmI,gBAAgB"} \ No newline at end of file diff --git a/js/public/apbct-react-bundle.js b/js/public/apbct-react-bundle.js index 0f6416195..39f7d2d64 100644 --- a/js/public/apbct-react-bundle.js +++ b/js/public/apbct-react-bundle.js @@ -1,2 +1,2 @@ /*! For license information please see apbct-react-bundle.js.LICENSE.txt */ -(()=>{"use strict";var e={968(e,n,t){var r,a=t(540),l=t(961);r=l.createRoot,l.hydrateRoot;var o=t.cjs(function(e,n){var t=[];function r(e){for(var n=-1,r=0;r0?" ".concat(t.layer):""," {")),r+=t.css,a&&(r+="}"),t.media&&(r+="}"),t.supports&&(r+="}");var l=t.sourceMap;l&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(l))))," */")),n.styleTagTransform(r,e,n.options)}(n,e,t)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)}}}}),c=t.n(u),s=t.cjs(function(e,n){var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}}),f=t.n(s),d=t.cjs(function(e,n){e.exports=function(e){var n=t.nc;n&&e.setAttribute("nonce",n)}}),p=t.n(d),m=t.cjs(function(e,n){e.exports=function(e){var n=document.createElement("style");return e.setAttributes(n,e.attributes),e.insert(n,e.options),n}}),g=t.n(m),h=t.cjs(function(e,n){e.exports=function(e,n){if(n.styleSheet)n.styleSheet.cssText=e;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(e))}}}),b=t.n(h),v=t(567),y={};y.styleTagTransform=b(),y.setAttributes=p(),y.insert=f().bind(null,"head"),y.domAPI=c(),y.insertStyleElement=g(),i()(v.A,y),v.A&&v.A.locals&&v.A.locals;var w=t(606),k={};function x(e){return x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},x(e)}function S(){var e,n,t="function"==typeof Symbol?Symbol:{},r=t.iterator||"@@iterator",a=t.toStringTag||"@@toStringTag";function l(t,r,a,l){var u=r&&r.prototype instanceof i?r:i,c=Object.create(u.prototype);return E(c,"_invoke",function(t,r,a){var l,i,u,c=0,s=a||[],f=!1,d={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(n,t){return l=n,i=0,u=e,d.n=t,o}};function p(t,r){for(i=t,u=r,n=0;!f&&c&&!a&&n3?(a=m===r)&&(u=l[(i=l[4])?5:(i=3,3)],l[4]=l[5]=e):l[0]<=p&&((a=t<2&&pr||r>m)&&(l[4]=t,l[5]=r,d.n=m,i=0))}if(a||t>1)return o;throw f=!0,r}return function(a,s,m){if(c>1)throw TypeError("Generator is already running");for(f&&1===s&&p(s,m),i=s,u=m;(n=i<2?e:u)||!f;){l||(i?i<3?(i>1&&(d.n=-1),p(i,u)):d.n=u:d.v=u);try{if(c=2,l){if(i||(a="next"),n=l[a]){if(!(n=n.call(l,u)))throw TypeError("iterator result is not an object");if(!n.done)return n;u=n.value,i<2&&(i=0)}else 1===i&&(n=l.return)&&n.call(l),i<2&&(u=TypeError("The iterator does not provide a '"+a+"' method"),i=1);l=e}else if((n=(f=d.n<0)?u:t.call(r,d))!==o)break}catch(n){l=e,i=1,u=n}finally{c=1}}return{value:n,done:f}}}(t,a,l),!0),c}var o={};function i(){}function u(){}function c(){}n=Object.getPrototypeOf;var s=[][r]?n(n([][r]())):(E(n={},r,function(){return this}),n),f=c.prototype=i.prototype=Object.create(s);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,E(e,a,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=c,E(f,"constructor",c),E(c,"constructor",u),u.displayName="GeneratorFunction",E(c,a,"GeneratorFunction"),E(f),E(f,a,"Generator"),E(f,r,function(){return this}),E(f,"toString",function(){return"[object Generator]"}),(S=function(){return{w:l,m:d}})()}function E(e,n,t,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}E=function(e,n,t,r){function l(n,t){E(e,n,function(e){return this._invoke(n,t,e)})}n?a?a(e,n,{value:t,enumerable:!r,configurable:!r,writable:!r}):e[n]=t:(l("next",0),l("throw",1),l("return",2))},E(e,n,t,r)}function z(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function C(e){for(var n=1;n1&&void 0!==s[1])||s[1],r=!(s.length>2&&void 0!==s[2])||s[2],a=T(),l=a.url,o=a.nonce,i=C(C({},n),{},{_ajax_nonce:o,no_cache:String(Math.random())}),r&&(i.apbct_wizard_request=1),e.n=1,fetch(l,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(i)});case 1:return u=e.v,e.n=2,u.text();case 2:if(c=e.v,t){e.n=3;break}return e.a(2,c);case 3:return e.p=3,e.a(2,JSON.parse(c));case 4:throw e.p=4,e.v,new Error("Invalid JSON response from server");case 5:return e.a(2)}},e,null,[[3,4]])})),O.apply(this,arguments)}function F(e){return M.apply(this,arguments)}function M(){return(M=N(S().m(function e(n){var t;return S().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,L(n,!0,!0);case 1:if("object"===x(t=e.v)&&null!==t){e.n=2;break}throw new Error("Unexpected AJAX response");case 2:return e.a(2,t)}},e)}))).apply(this,arguments)}function j(){var e,n,t="function"==typeof Symbol?Symbol:{},r=t.iterator||"@@iterator",a=t.toStringTag||"@@toStringTag";function l(t,r,a,l){var u=r&&r.prototype instanceof i?r:i,c=Object.create(u.prototype);return R(c,"_invoke",function(t,r,a){var l,i,u,c=0,s=a||[],f=!1,d={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(n,t){return l=n,i=0,u=e,d.n=t,o}};function p(t,r){for(i=t,u=r,n=0;!f&&c&&!a&&n3?(a=m===r)&&(u=l[(i=l[4])?5:(i=3,3)],l[4]=l[5]=e):l[0]<=p&&((a=t<2&&pr||r>m)&&(l[4]=t,l[5]=r,d.n=m,i=0))}if(a||t>1)return o;throw f=!0,r}return function(a,s,m){if(c>1)throw TypeError("Generator is already running");for(f&&1===s&&p(s,m),i=s,u=m;(n=i<2?e:u)||!f;){l||(i?i<3?(i>1&&(d.n=-1),p(i,u)):d.n=u:d.v=u);try{if(c=2,l){if(i||(a="next"),n=l[a]){if(!(n=n.call(l,u)))throw TypeError("iterator result is not an object");if(!n.done)return n;u=n.value,i<2&&(i=0)}else 1===i&&(n=l.return)&&n.call(l),i<2&&(u=TypeError("The iterator does not provide a '"+a+"' method"),i=1);l=e}else if((n=(f=d.n<0)?u:t.call(r,d))!==o)break}catch(n){l=e,i=1,u=n}finally{c=1}}return{value:n,done:f}}}(t,a,l),!0),c}var o={};function i(){}function u(){}function c(){}n=Object.getPrototypeOf;var s=[][r]?n(n([][r]())):(R(n={},r,function(){return this}),n),f=c.prototype=i.prototype=Object.create(s);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,R(e,a,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=c,R(f,"constructor",c),R(c,"constructor",u),u.displayName="GeneratorFunction",R(c,a,"GeneratorFunction"),R(f),R(f,a,"Generator"),R(f,r,function(){return this}),R(f,"toString",function(){return"[object Generator]"}),(j=function(){return{w:l,m:d}})()}function R(e,n,t,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}R=function(e,n,t,r){function l(n,t){R(e,n,function(e){return this._invoke(n,t,e)})}n?a?a(e,n,{value:t,enumerable:!r,configurable:!r,writable:!r}):e[n]=t:(l("next",0),l("throw",1),l("return",2))},R(e,n,t,r)}function D(e,n,t,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){return void t(e)}i.done?n(u):Promise.resolve(u).then(r,a)}function I(e){return function(){var n=this,t=arguments;return new Promise(function(r,a){var l=e.apply(n,t);function o(e){D(l,r,a,o,i,"next",e)}function i(e){D(l,r,a,o,i,"throw",e)}o(void 0)})}}function A(e,n){return U.apply(this,arguments)}function U(){return(U=I(j().m(function e(n,t){return j().w(function(e){for(;;)if(0===e.n)return e.a(2,F({action:"apbct_get_key_auto",email:n,ct_admin_timezone:t}))},e)}))).apply(this,arguments)}function V(e){return H.apply(this,arguments)}function H(){return(H=I(j().m(function e(n){return j().w(function(e){for(;;)if(0===e.n)return e.a(2,F({action:"apbct_save_key",apiKey:n}))},e)}))).apply(this,arguments)}function B(){var e,n,t="function"==typeof Symbol?Symbol:{},r=t.iterator||"@@iterator",a=t.toStringTag||"@@toStringTag";function l(t,r,a,l){var u=r&&r.prototype instanceof i?r:i,c=Object.create(u.prototype);return $(c,"_invoke",function(t,r,a){var l,i,u,c=0,s=a||[],f=!1,d={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(n,t){return l=n,i=0,u=e,d.n=t,o}};function p(t,r){for(i=t,u=r,n=0;!f&&c&&!a&&n3?(a=m===r)&&(u=l[(i=l[4])?5:(i=3,3)],l[4]=l[5]=e):l[0]<=p&&((a=t<2&&pr||r>m)&&(l[4]=t,l[5]=r,d.n=m,i=0))}if(a||t>1)return o;throw f=!0,r}return function(a,s,m){if(c>1)throw TypeError("Generator is already running");for(f&&1===s&&p(s,m),i=s,u=m;(n=i<2?e:u)||!f;){l||(i?i<3?(i>1&&(d.n=-1),p(i,u)):d.n=u:d.v=u);try{if(c=2,l){if(i||(a="next"),n=l[a]){if(!(n=n.call(l,u)))throw TypeError("iterator result is not an object");if(!n.done)return n;u=n.value,i<2&&(i=0)}else 1===i&&(n=l.return)&&n.call(l),i<2&&(u=TypeError("The iterator does not provide a '"+a+"' method"),i=1);l=e}else if((n=(f=d.n<0)?u:t.call(r,d))!==o)break}catch(n){l=e,i=1,u=n}finally{c=1}}return{value:n,done:f}}}(t,a,l),!0),c}var o={};function i(){}function u(){}function c(){}n=Object.getPrototypeOf;var s=[][r]?n(n([][r]())):($(n={},r,function(){return this}),n),f=c.prototype=i.prototype=Object.create(s);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,$(e,a,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=c,$(f,"constructor",c),$(c,"constructor",u),u.displayName="GeneratorFunction",$(c,a,"GeneratorFunction"),$(f),$(f,a,"Generator"),$(f,r,function(){return this}),$(f,"toString",function(){return"[object Generator]"}),(B=function(){return{w:l,m:d}})()}function $(e,n,t,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}$=function(e,n,t,r){function l(n,t){$(e,n,function(e){return this._invoke(n,t,e)})}n?a?a(e,n,{value:t,enumerable:!r,configurable:!r,writable:!r}):e[n]=t:(l("next",0),l("throw",1),l("return",2))},$(e,n,t,r)}function W(e,n,t,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){return void t(e)}i.done?n(u):Promise.resolve(u).then(r,a)}function Q(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,a,l,o,i=[],u=!0,c=!1;try{if(l=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;u=!1}else for(;!(u=(r=l.call(t)).done)&&(i.push(r.value),i.length!==n);u=!0);}catch(e){c=!0,a=e}finally{try{if(!u&&null!=t.return&&(o=t.return(),Object(o)!==o))return}finally{if(c)throw a}}return i}}(e,n)||function(e,n){if(e){if("string"==typeof e)return G(e,n);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?G(e,n):void 0}}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function G(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t3?(a=m===r)&&(u=l[(i=l[4])?5:(i=3,3)],l[4]=l[5]=e):l[0]<=p&&((a=t<2&&pr||r>m)&&(l[4]=t,l[5]=r,d.n=m,i=0))}if(a||t>1)return o;throw f=!0,r}return function(a,s,m){if(c>1)throw TypeError("Generator is already running");for(f&&1===s&&p(s,m),i=s,u=m;(n=i<2?e:u)||!f;){l||(i?i<3?(i>1&&(d.n=-1),p(i,u)):d.n=u:d.v=u);try{if(c=2,l){if(i||(a="next"),n=l[a]){if(!(n=n.call(l,u)))throw TypeError("iterator result is not an object");if(!n.done)return n;u=n.value,i<2&&(i=0)}else 1===i&&(n=l.return)&&n.call(l),i<2&&(u=TypeError("The iterator does not provide a '"+a+"' method"),i=1);l=e}else if((n=(f=d.n<0)?u:t.call(r,d))!==o)break}catch(n){l=e,i=1,u=n}finally{c=1}}return{value:n,done:f}}}(t,a,l),!0),c}var o={};function i(){}function u(){}function c(){}n=Object.getPrototypeOf;var s=[][r]?n(n([][r]())):(ae(n={},r,function(){return this}),n),f=c.prototype=i.prototype=Object.create(s);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,ae(e,a,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=c,ae(f,"constructor",c),ae(c,"constructor",u),u.displayName="GeneratorFunction",ae(c,a,"GeneratorFunction"),ae(f),ae(f,a,"Generator"),ae(f,r,function(){return this}),ae(f,"toString",function(){return"[object Generator]"}),(re=function(){return{w:l,m:d}})()}function ae(e,n,t,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}ae=function(e,n,t,r){function l(n,t){ae(e,n,function(e){return this._invoke(n,t,e)})}n?a?a(e,n,{value:t,enumerable:!r,configurable:!r,writable:!r}):e[n]=t:(l("next",0),l("throw",1),l("return",2))},ae(e,n,t,r)}function le(e,n,t,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){return void t(e)}i.done?n(u):Promise.resolve(u).then(r,a)}function oe(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,a,l,o,i=[],u=!0,c=!1;try{if(l=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;u=!1}else for(;!(u=(r=l.call(t)).done)&&(i.push(r.value),i.length!==n);u=!0);}catch(e){c=!0,a=e}finally{try{if(!u&&null!=t.return&&(o=t.return(),Object(o)!==o))return}finally{if(c)throw a}}return i}}(e,n)||function(e,n){if(e){if("string"==typeof e)return ie(e,n);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?ie(e,n):void 0}}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ie(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t3?(a=m===r)&&(u=l[(i=l[4])?5:(i=3,3)],l[4]=l[5]=e):l[0]<=p&&((a=t<2&&pr||r>m)&&(l[4]=t,l[5]=r,d.n=m,i=0))}if(a||t>1)return o;throw f=!0,r}return function(a,s,m){if(c>1)throw TypeError("Generator is already running");for(f&&1===s&&p(s,m),i=s,u=m;(n=i<2?e:u)||!f;){l||(i?i<3?(i>1&&(d.n=-1),p(i,u)):d.n=u:d.v=u);try{if(c=2,l){if(i||(a="next"),n=l[a]){if(!(n=n.call(l,u)))throw TypeError("iterator result is not an object");if(!n.done)return n;u=n.value,i<2&&(i=0)}else 1===i&&(n=l.return)&&n.call(l),i<2&&(u=TypeError("The iterator does not provide a '"+a+"' method"),i=1);l=e}else if((n=(f=d.n<0)?u:t.call(r,d))!==o)break}catch(n){l=e,i=1,u=n}finally{c=1}}return{value:n,done:f}}}(t,a,l),!0),c}var o={};function i(){}function u(){}function c(){}n=Object.getPrototypeOf;var s=[][r]?n(n([][r]())):(de(n={},r,function(){return this}),n),f=c.prototype=i.prototype=Object.create(s);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,de(e,a,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=c,de(f,"constructor",c),de(c,"constructor",u),u.displayName="GeneratorFunction",de(c,a,"GeneratorFunction"),de(f),de(f,a,"Generator"),de(f,r,function(){return this}),de(f,"toString",function(){return"[object Generator]"}),(fe=function(){return{w:l,m:d}})()}function de(e,n,t,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}de=function(e,n,t,r){function l(n,t){de(e,n,function(e){return this._invoke(n,t,e)})}n?a?a(e,n,{value:t,enumerable:!r,configurable:!r,writable:!r}):e[n]=t:(l("next",0),l("throw",1),l("return",2))},de(e,n,t,r)}function pe(e){return pe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pe(e)}function me(e,n,t,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){return void t(e)}i.done?n(u):Promise.resolve(u).then(r,a)}var ge=wp.i18n.__;function he(e){return be.apply(this,arguments)}function be(){var e;return e=fe().m(function e(n){var t,r,a,l,o,i,u,c=arguments;return fe().w(function(e){for(;;)switch(e.n){case 0:t=c.length>1&&void 0!==c[1]?c[1]:null,r=[{data:{action:"apbct_react_access_key_check"},processing_msg:ge("Checking access key...","cleantalk-spam-protect")},{data:{action:"apbct_react_sfw_update"},processing_msg:ge("Updating SpamFireWall...","cleantalk-spam-protect")},{data:{action:"apbct_react_send_feedback"},processing_msg:ge("Sending feedback...","cleantalk-spam-protect")},{data:{action:"apbct_react_brief_data"},processing_msg:ge("Updating dashboard data...","cleantalk-spam-protect")},{data:{action:"apbct_react_run_adjusting_env"},processing_msg:ge("Adjusting environment...","cleantalk-spam-protect")},{data:{action:"apbct_react_sync_end"},processing_msg:ge("Finishing setup...","cleantalk-spam-protect")}],a=r.length,o=0;case 1:if(!r.length){e.n=4;break}return l=r.shift(),o++,i=Math.round(o/a*100),n&&n(l.processing_msg,i),e.n=2,L(l.data,!0,!1);case 2:if(!(u=e.v)||"object"!==pe(u)||!1!==u.success){e.n=3;break}throw new Error(u.message||"Synchronization failed");case 3:e.n=1;break;case 4:return t&&"function"==typeof t&&t(),e.a(2,!0)}},e)}),be=function(){var n=this,t=arguments;return new Promise(function(r,a){var l=e.apply(n,t);function o(e){me(l,r,a,o,i,"next",e)}function i(e){me(l,r,a,o,i,"throw",e)}o(void 0)})},be.apply(this,arguments)}function ve(){var e,n,t="function"==typeof Symbol?Symbol:{},r=t.iterator||"@@iterator",a=t.toStringTag||"@@toStringTag";function l(t,r,a,l){var u=r&&r.prototype instanceof i?r:i,c=Object.create(u.prototype);return ye(c,"_invoke",function(t,r,a){var l,i,u,c=0,s=a||[],f=!1,d={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(n,t){return l=n,i=0,u=e,d.n=t,o}};function p(t,r){for(i=t,u=r,n=0;!f&&c&&!a&&n3?(a=m===r)&&(u=l[(i=l[4])?5:(i=3,3)],l[4]=l[5]=e):l[0]<=p&&((a=t<2&&pr||r>m)&&(l[4]=t,l[5]=r,d.n=m,i=0))}if(a||t>1)return o;throw f=!0,r}return function(a,s,m){if(c>1)throw TypeError("Generator is already running");for(f&&1===s&&p(s,m),i=s,u=m;(n=i<2?e:u)||!f;){l||(i?i<3?(i>1&&(d.n=-1),p(i,u)):d.n=u:d.v=u);try{if(c=2,l){if(i||(a="next"),n=l[a]){if(!(n=n.call(l,u)))throw TypeError("iterator result is not an object");if(!n.done)return n;u=n.value,i<2&&(i=0)}else 1===i&&(n=l.return)&&n.call(l),i<2&&(u=TypeError("The iterator does not provide a '"+a+"' method"),i=1);l=e}else if((n=(f=d.n<0)?u:t.call(r,d))!==o)break}catch(n){l=e,i=1,u=n}finally{c=1}}return{value:n,done:f}}}(t,a,l),!0),c}var o={};function i(){}function u(){}function c(){}n=Object.getPrototypeOf;var s=[][r]?n(n([][r]())):(ye(n={},r,function(){return this}),n),f=c.prototype=i.prototype=Object.create(s);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,ye(e,a,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=c,ye(f,"constructor",c),ye(c,"constructor",u),u.displayName="GeneratorFunction",ye(c,a,"GeneratorFunction"),ye(f),ye(f,a,"Generator"),ye(f,r,function(){return this}),ye(f,"toString",function(){return"[object Generator]"}),(ve=function(){return{w:l,m:d}})()}function ye(e,n,t,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}ye=function(e,n,t,r){function l(n,t){ye(e,n,function(e){return this._invoke(n,t,e)})}n?a?a(e,n,{value:t,enumerable:!r,configurable:!r,writable:!r}):e[n]=t:(l("next",0),l("throw",1),l("return",2))},ye(e,n,t,r)}function we(e,n,t,r,a,l,o){try{var i=e[l](o),u=i.value}catch(e){return void t(e)}i.done?n(u):Promise.resolve(u).then(r,a)}function ke(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,a,l,o,i=[],u=!0,c=!1;try{if(l=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;u=!1}else for(;!(u=(r=l.call(t)).done)&&(i.push(r.value),i.length!==n);u=!0);}catch(e){c=!0,a=e}finally{try{if(!u&&null!=t.return&&(o=t.return(),Object(o)!==o))return}finally{if(c)throw a}}return i}}(e,n)||function(e,n){if(e){if("string"==typeof e)return xe(e,n);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?xe(e,n):void 0}}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function xe(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);te.length)&&(n=e.length);for(var t=0,r=Array(n);t div {\n width: 50%;\n border-radius: 8px;\n}\n.apbct-signup-wizard-card.existing-user > div,\n.apbct-signup-wizard-card.apbct-signup-wizard-card-error > div,\n.apbct-signup-wizard-card.apbct-signup-wizard-card-success > div\n{\n width: 100%;\n}\n.apbct-signup-wizard-checked-ico {\n display: inline-block;\n width: 18px;\n height: 18px;\n position: relative;\n padding: 2px 12px 0 0;\n margin-right: 12px;\n}\n.apbct-signup-wizard-checked-ico::after {\n content: '';\n position: absolute;\n left: 4px;\n top: 1px;\n width: 8px;\n height: 13px;\n border: solid #026E88;\n border-width: 0 2.5px 2.5px 0;\n transform: rotate(45deg);\n}\n.apbct-signup-wizard-card-left > svg {\n margin-bottom: 22px;\n}\n.apbct-signup-wizard-card-left > div {\n padding: 0 32px;\n}\n.apbct-signup-wizard-card-left p {\n font-size: 16px;\n line-height: 22px;\n display: flex;\n margin: 0 0 18px 0;\n}\n.apbct-signup-wizard-card .apbct-signup-wizard-beautiful-digits {\n font-size: 16px;\n line-height: 22px;\n}\n.apbct-signup-wizard-card-left p.apbct-signup-wizard-title {\n font-size: 24px;\n font-weight: 500;\n line-height: 29px;\n color: #000;\n}\n.apbct-signup-wizard-card-left .apbct-signup-wizard-what-next {\n margin-top: 64px;\n}\n.apbct-signup-wizard-card-left .apbct-signup-wizard-what-next-title {\n display: inline-block;\n background: #F3F6F9;\n border-radius: 18px;\n padding: 8px 16px;\n font-size: 16px;\n font-weight: 500;\n line-height: 19px;\n color: #000;\n}\n.apbct-signup-wizard-card-left .apbct-signup-wizard-what-next-hint{\n display: inline-block;\n font-size: 14px;\n line-height: 22px;\n margin-top: 8px;\n}\n.apbct-signup-wizard-card-right {\n background: #F3F6F9;\n padding: 48px 62px;\n text-align: center;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n}\n.apbct-signup-wizard-form-group {\n position: relative;\n margin-bottom: 12px;\n}\n.apbct-signup-wizard-form-group input,\n.apbct-signup-wizard-form-group button {\n width: 100%;\n height: 44px;\n}\n.apbct-signup-wizard-form-group input[type="email"],\n.apbct-signup-wizard-form-group input[type="text"] {\n border: 1px solid #026E88;\n border-radius: 7px;\n box-shadow: none;\n}\n.apbct-signup-wizard-form-group .apbct-signup-wizard-input-title {\n color: #026E88;\n font-size: 12px;\n position: absolute;\n top: -1px;\n left: 10px;\n background: #F3F6F9;\n height: 2px;\n line-height: 0;\n padding: 0 5px;\n}\n.apbct-signup-wizard-form-group.checkbox-block {\n text-align: left;\n height: 18px;\n}\n.apbct-signup-wizard-form-group.checkbox-block input[type="checkbox"] {\n position: absolute;\n opacity: 0;\n width: 0;\n height: 0;\n margin: 0;\n}\n.apbct-signup-wizard-form-group.checkbox-block input[type="checkbox"] + label {\n display: inline-flex;\n align-items: center;\n gap: 10px;\n cursor: pointer;\n user-select: none;\n height: 18px;\n color: #646464;\n}\n.apbct-signup-wizard-form-group.checkbox-block input[type="checkbox"] + label:before {\n content: '';\n width: 16px;\n height: 16px;\n background-color: #fff;\n border: 1px solid #026E88;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n.apbct-signup-wizard-form-group.checkbox-block input[type="checkbox"]:checked + label:before {\n background-color: #026E88;\n border-color: #026E88;\n background-image: url(${f});\n background-repeat: no-repeat;\n background-position: center;\n background-size: 14px;\n}\n.apbct-signup-wizard-form-group.checkbox-block input[type="checkbox"] + label:hover::before {\n border-color: #026E88;\n}\n.apbct-signup-wizard-form-group.checkbox-block a {\n color: #646464;\n text-decoration: none;\n transition: color .1s cubic-bezier(.39,.575,.565,1)\n}\n.apbct-signup-wizard-form-group.checkbox-block a:hover {\n color: #026E88;\n}\n.apbct-signup-wizard-form-group button,\n.apbct-signup-wizard-form-group a.apbct-signup-wizard-link-button {\n transition: opacity .1s cubic-bezier(.39,.575,.565,1);\n font-size: 16px;\n font-weight: 500;\n border-radius: 8px;\n margin-bottom: 20px;\n cursor: pointer;\n}\n.apbct-signup-wizard-form-group button:hover,\n.apbct-signup-wizard-form-group a.apbct-signup-wizard-link-button:hover {\n opacity: .75;\n}\n.apbct-signup-wizard-form-group button[type="submit"] {\n background: #026E88;\n color: #FFFFFF;\n border: none;\n font-weight: 400;\n}\n.apbct-signup-wizard-form-group.apbct-signup-wizard-subtitle {\n text-align: left;\n}\n.apbct-signup-wizard-form-group button[name="existingUser"] {\n background: #DFE4E9;\n border: 1px solid #D6D8DB;\n color: #444444;\n}\n.apbct-signup-wizard-card .apbct-signup-wizard-skip-wizard-link,\n.apbct-signup-wizard-card .apbct-signup-wizard-skip-wizard-link:hover {\n color: #646464;\n font-size: 14px;\n font-weight: 400;\n line-height: 22px;\n}\n.apbct-signup-wizard-card.existing-user a {\n text-decoration: none;\n display: flex;\n gap: 4px;\n}\n.apbct-signup-wizard-card.existing-user a:hover,\n.apbct-signup-wizard-card.existing-user a:focus {\n text-decoration: underline;\n}\n.apbct-signup-wizard-card.existing-user p {\n font-size: 16px;\n}\n.apbct-signup-wizard-card.existing-user p a.apbct-signup-wizard-inline-link {\n display: inline;\n color: #646464;\n text-decoration: underline;\n transition: color .1s cubic-bezier(.39,.575,.565,1);\n}\n.apbct-signup-wizard-card.existing-user p a.apbct-signup-wizard-inline-link:hover,\n.apbct-signup-wizard-card.existing-user p a.apbct-signup-wizard-inline-link:focus {\n color: #026E88;\n}\n.apbct-signup-wizard-card.existing-user .apbct-signup-wizard-card-inner {\n padding: 32px;\n}\n.apbct-signup-wizard-card.existing-user .apbct-signup-wizard-title {\n font-weight: 500;\n font-size: 24px;\n line-height: 29px;\n margin-bottom: 16px;\n}\n.apbct-signup-wizard-card.existing-user form {\n background: #F3F6F9;\n border-radius: 8px;\n padding: 32px;\n display: flex;\n gap: 24px;\n}\n.apbct-signup-wizard-card.existing-user .apbct-signup-wizard-form-group,\n.apbct-signup-wizard-card.existing-user .apbct-signup-wizard-form-group input,\n.apbct-signup-wizard-card.existing-user .apbct-signup-wizard-form-group button {\n margin: 0;\n}\n.apbct-signup-wizard-card.existing-user .apbct-signup-wizard-form-group:first-child {\n flex-grow: 1;\n}\n.apbct-signup-wizard-card.existing-user .apbct-signup-wizard-form-group button {\n padding: 0 48px;\n}\n.apbct-signup-wizard-card.apbct-signup-wizard-card-error .apbct-signup-wizard-error-head,\n.apbct-signup-wizard-card.apbct-signup-wizard-card-success .apbct-signup-wizard-success-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.apbct-signup-wizard-card.apbct-signup-wizard-card-error .apbct-signup-wizard-error-title {\n display: flex;\n align-items: center;\n}\n.apbct-signup-wizard-card.apbct-signup-wizard-card-error .apbct-signup-wizard-error-title svg {\n margin-right: 12px;\n}\n.apbct-signup-wizard-card.apbct-signup-wizard-card-error .apbct-signup-wizard-error-title h2 {\n font-size: 24px;\n font-weight: 500;\n color: #A94442;\n margin: 0;\n}\n.apbct-signup-wizard-card.apbct-signup-wizard-card-error .apbct-signup-wizard-title {\n padding: 32px;\n color: #000;\n font-size: 16px;\n font-weight: 400;\n line-height: 22px;\n}\n.apbct-signup-wizard-card.apbct-signup-wizard-card-error .apbct-signup-wizard-error-links a {\n color: #444444;\n margin-right: 16px;\n font-size: 14px;\n font-weight: 400;\n line-height: 22px;\n}\n.apbct-signup-wizard-card.apbct-signup-wizard-card-success p {\n margin: 0 0 32px;\n text-align: center;\n font-size: 16px;\n}\n.apbct-signup-wizard-card.apbct-signup-wizard-card-success p.apbct-signup-wizard-title {\n margin-bottom: 14px;\n margin-top: 18px;\n font-size: 24px;\n}\n.apbct-signup-wizard-card.apbct-signup-wizard-card-success p.apbct-signup-wizard-title svg {\n margin-right: 8px;\n}\n.apbct-signup-wizard-card.apbct-signup-wizard-card-success .apbct-signup-wizard-form-group {\n text-align: center;\n margin-bottom: 0;\n}\n.apbct-signup-wizard-card.apbct-signup-wizard-card-success .apbct-signup-wizard-form-group a.apbct-signup-wizard-link-button {\n background: #026E88;\n color: #FFF;\n border: none;\n font-weight: 400;\n width: auto;\n padding: 10px 20px;\n margin-bottom: 0;\n text-decoration: none;\n outline: none;\n}\n.apbct-signup-wizard-connecting-gif img {\n width: 100%;\n border-radius: 8px;\n}\n.apbct-signup-wizard-card-left > div.apbct-signup-wizard-connecting-gif {\n padding: 0 24px;\n}\n.apbct-signup-wizard-card.apbct-signup-wizard-card-connecting {\n padding-bottom: 64px;\n}\n.apbct-signup-wizard-card.apbct-signup-wizard-card-connecting .apbct-signup-wizard-card-inner {\n padding: 0 24px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n.apbct-signup-wizard-card.apbct-signup-wizard-card-connecting .apbct-signup-wizard-title {\n font-size: 24px;\n font-weight: 500;\n line-height: 29px;\n margin-bottom: 24px;\n}\n.apbct-signup-wizard-card .apbct-signup-wizard-progressbar-legend {\n font-size: 14px;\n display: flex;\n justify-content: space-between;\n margin-bottom: 8px;\n}\n.apbct-signup-wizard-card .apbct-signup-wizard-progressbar-legend .apbct-signup-wizard-progressbar-legend-percent {\n color: #026E88;\n}\n.apbct-signup-wizard-card .apbct-signup-wizard-progressbar {\n height: 10px;\n border-radius: 5px;\n background: #E1ECF1;\n position: relative;\n}\n.apbct-signup-wizard-card .apbct-signup-wizard-progressbar div {\n position: absolute;\n top: 0;\n left: 0;\n width: 0;\n height: 10px;\n border-radius: 5px;\n background-image: linear-gradient(to right, #BAB9F9, #026E88);\n background-size: 500px 100%;\n background-repeat: no-repeat;\n transition: width .3s cubic-bezier(.39,.575,.565,1);\n}\n`,""]);const d=s;t.d(n,["A",0,d])},567(e,n,t){var r=t(601),a=t.n(r),l=t(314),o=t.n(l)()(a());o.push([e.id,".apbct-signup-wizard-shell {\n max-width: 720px;\n margin: 24px 0 40px;\n padding: 32px 36px;\n background: #fff;\n border: 1px solid #dce4ea;\n border-radius: 12px;\n box-shadow: 0 8px 24px rgba(30, 42, 50, 0.06);\n}\n\n.apbct-signup-wizard-shell__title {\n margin: 0 0 8px;\n font-size: 22px;\n line-height: 1.3;\n color: #1e2a32;\n}\n\n.apbct-signup-wizard-shell__hint {\n margin: 0;\n font-size: 14px;\n color: #5c6b76;\n}\n",""]);const i=o;t.d(n,["A",0,i])},314(e){e.exports=function(e){var n=[];return n.toString=function(){return this.map(function(n){var t="",r=void 0!==n[5];return n[4]&&(t+="@supports (".concat(n[4],") {")),n[2]&&(t+="@media ".concat(n[2]," {")),r&&(t+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),t+=e(n),r&&(t+="}"),n[2]&&(t+="}"),n[4]&&(t+="}"),t}).join("")},n.i=function(e,t,r,a,l){"string"==typeof e&&(e=[[null,e,void 0]]);var o={};if(r)for(var i=0;i0?" ".concat(s[5]):""," {").concat(s[1],"}")),s[5]=l),t&&(s[2]?(s[1]="@media ".concat(s[2]," {").concat(s[1],"}"),s[2]=t):s[2]=t),a&&(s[4]?(s[1]="@supports (".concat(s[4],") {").concat(s[1],"}"),s[4]=a):s[4]="".concat(a)),n.push(s))}},n}},417(e){e.exports=function(e,n){return n||(n={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),n.hash&&(e+=n.hash),/["'() \t\n]|(%20)/.test(e)||n.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},601(e){e.exports=function(e){return e[1]}},551(e,n,t){var r=t(540),a=t(982);function l(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t