var _faitracker=function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=7)}([function(e,t){e.exports={info:function(e){console.log(e)},error:function(e){console.error(e)},debug:function(e,t=!1){1==window.FAITRACKER_DEBUG&&(t?console.trace("%c"+e,"color: red"):console.log(e))},errorLine:function(e){let t="";"string"==typeof e&&(t=e),e instanceof Error&&e.message&&(t=e.message),""!=t&&console.error(t)}}},function(e,t){e.exports={validatedStringArg:function(e,t){if("string"!=typeof t)throw new Error("FAITrackerArgumentError: Invalid "+e);if(!(t=t.trim()))throw new Error("FAITrackerArgumentError: "+e+" cannot be empty.");return t},convertIfNumber:function(e){if(!e.match(/^[+-]?\d+(\.\d+)?$/))return e;var t=Number(e);return isNaN(t)?e:t},getCleanHash:function(e){return e.split("?")[0]},parseURLString:function(e=""){if(""==e||!e)return{host:"",path:"",hash:""};var t=document.createElement("a");return t.setAttribute("href",e),{host:t.host,path:t.pathname,hash:t.hash}},getCurrentUnixTimestampInMs:function(){return(new Date).getTime()},isLocalStorageAvailable:function(){if(null==window.localStorage)return!1;try{var e="faitracker-test";window.localStorage.setItem(e,"test");var t="test"==window.localStorage.getItem(e);return window.localStorage.removeItem(e),t}catch(e){return!1}},encode:function(e,t=4){for(var r="",n=0;n=33&&i<=o?(dat=i+t,r+=String.fromCharCode(dat)):i>o&&i<=126?(dat=32+i%o,r+=String.fromCharCode(dat)):r+=e[n]}return r},decode:function(e,t=4){for(var r="",n=0;n=37&&i<=126){var o=i-4;r+=String.fromCharCode(o)}else if(i<37&&i>=33){o=i%33+122+1;r+=String.fromCharCode(o)}else r+=e[n]}return r}}},function(e,t,r){"use strict";const n=r(1),i=r(3),o=r(0),a="$phone",s="$name",c=["password","hidden"],u=function(){for(var e=navigator.appVersion,t=navigator.userAgent,r=[{s:"iPad",r:/iPad/},{s:"Samsung Galaxy",r:/SCH-I800/},{s:"Motorola",r:/xoom/},{s:"Kindle",r:/kindle/}],n=[{s:"iPhone",r:/iPhone/},{s:"iPod",r:/iPod/},{s:"blackberry",r:/blackberry/},{s:"android 0.5",r:/android 0.5/},{s:"htc",r:/htc/},{s:"lg",r:/lg/},{s:"midp",r:/midp/},{s:"mmp",r:/mmp/},{s:"mobile",r:/mobile/},{s:"nokia",r:/nokia/},{s:"opera mini",r:/opera mini/},{s:"palm",r:/palm|PalmSource/},{s:"pocket",r:/pocket/},{s:"psp",r:/psp|Playstation Portable/},{s:"sgh",r:/sgh/},{s:"smartphone",r:/smartphone/},{s:"symbian",r:/symbian/},{s:"treo mini",r:/treo mini/},{s:"SonyEricsson",r:/SonyEricsson/},{s:"Samsung",r:/Samsung/},{s:"MobileExplorer",r:/MobileExplorer/},{s:"Benq",r:/Benq/},{s:"Windows Phone",r:/Windows Phone/},{s:"Windows Mobile",r:/Windows Mobile/},{s:"IEMobile",r:/IEMobile/},{s:"Windows CE",r:/Windows CE/},{s:"Nintendo Wii",r:/Nintendo Wii/}],i=!1,o=!1,a="",s=0;s=0?e.split("&"):[e];for(var a=0;a=0?i[a].split("="):[i[a],null],0==a&&0===e[0].indexOf("?")&&(e[0]=e[0].slice(1)),""!=e[1]&&null!=e[1]&&null!=e[1]&&(r[t+e[0]]=n.convertIfNumber(e[1]))}return r}function f(e){if(!e)return{};var t={};return t.$form_id=e.getAttribute("id"),t.$form_name=e.getAttribute("name"),t.$form_class=e.getAttribute("class"),t.$form_action=e.getAttribute("action"),t.$form_method=e.getAttribute("method"),t.$form_target=e.getAttribute("target"),t.$form_type=e.getAttribute("type"),t}function g(e){var t={};if(!e)return t;for(var r=0;r=0)&&e[r].value){var n=e[r].value.trim();""!=e[r].value&&(i.isEmail(n)&&!t.$email&&(t.$email=n),"tel"==e[r].type&&!t[a]&&i.isPhone(n)&&(t[a]=n),t.$company||!i.isFieldByMatch(e[r],"company")&&!i.isFieldByMatch(e[r],"org")||(t.$company=n),i.isFieldByMatch(e[r],"first","name")&&(t.$first_name||(t.$first_name=n),t[s]||(t[s]=""),t[s]=n+t[s]),i.isFieldByMatch(e[r],"last","name")&&(t.$last_name||(t.$last_name=n),t[s]&&""!=t[s]?t[s]:t[s]=n),i.isFieldByMatch(e[r],"name")&&(t[s]||(t[s]=n)))}return t}e.exports={getUserDefault:function(){let e={$platform:"web"},t=u();return t.screen&&t.screen.width>0&&(e.$screen_width=t.screen.width),t.screen&&t.screen.height>0&&(e.$screen_height=t.screen.height),t.device&&(e.$device_name=t.device),e},getEventDefault:function(e=""){let t={};t.$page_title=document.title,t.$referrer=e;let r=n.parseURLString(e);return t.$referrer_domain=r.host,t.$referrer_url=r.host+r.path+n.getCleanHash(r.hash),t.$page_raw_url=window.location.href,t.$page_domain=window.location.host,t.$page_url=window.location.host+window.location.pathname+n.getCleanHash(window.location.hash),t},getFromQueryParams:function(e){return l(function(e){let t=e.hash,r=e.search,n=t.split("?")[1];return null==n||""==n?r:""==r?"?"+n:r+"&"+n}(e))},parseFromQueryString:l,getTypeValidated:function(e={}){let t={};for(let r in e)"string"!=typeof e[r]&&"number"!=typeof e[r]||(t[r]=e[r]);return t},getPageLoadTimeInMs:d,getPageLoadTime:function(){var e=d();return e>0?e/1e3:0},getPropertiesFromForm:function(e){return e?g(e.querySelectorAll("input")):{}},getFormMetaAttributes:f,getCustomFormProperties:function(){return null!=window&&window&&null!=window.FAITRACKER_CUSTOM_FORM_PROPERTIES_FUNC&&window.FAITRACKER_CUSTOM_FORM_PROPERTIES_FUNC?"function"!=typeof window.FAITRACKER_CUSTOM_FORM_PROPERTIES_FUNC?{}:window.FAITRACKER_CUSTOM_FORM_PROPERTIES_FUNC():{}},getPageScrollPercent:function(){var e=document.documentElement,t=document.body,r="scrollTop",n="scrollHeight",i=e[r]||t[r],o=(e[n]||t[n])-e.clientHeight;return 0==o?0:i/o*100},getPropertiesFromAllNonFormInputs:function(){for(var e=document.querySelectorAll("input"),t={},r={},n=[],a=0;a=0))if(!i.isPartOfForm(e[a]))n.push(e[a]),r=f(e[a].form?e[a].form:null)}return t=g(n),r&&Object.keys(r).length>0&&(o.debug("Collecting form meta attributes",!1),t=Object.assign(r,t)),t},hasEmailOrPhone:function(e){return!(!e.$email&&!e[a])&&(!(!i.isEmail(e.$email)&&!i.isPhone(e[a]))||void 0)},PAGE_SPENT_TIME:"$page_spent_time",PAGE_LOAD_TIME:"$page_load_time",PAGE_SCROLL_PERCENT:"$page_scroll_percent",EMAIL:"$email",PHONE:a,PHONE:a,SOURCE:"source",GA_COOKIE:"$ga_cookie",GA_SESSION:"$ga_session",FB_COOKIE:"$fb_cookie",REDDIT_COOKIE:"$reddit_cookie",EV_FORM_SUBMITTED:"$form_submitted",DISABLED_INPUT_TYPES:c}},function(e,t,r){const n=r(0);function i(e){n.debug("Scanning for iframe forms.",!1);for(var t=document.querySelectorAll("iframe"),r=[],i=0;i0}function s(){window.clearInterval(window.FAITRACKER_FORM_BINDER_ID),n.debug("Stopped form binder task.")}function c(e,t,r){var n=e.getAttribute(t);n&&(n=n.trim(),r[t]=n)}function u(e=""){return e.replace(/[^\p{L}\p{N}\p{P}\p{Z}^$\n]/gu,"").trim()}e.exports={isEmail:function(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(e).toLowerCase())},isPhone:function(e){if(!e||0==e.length||e.length>20)return!1;if(/[a-zA-Z]/g.test(e))return!1;var t=e.match(/\d/g);return!(!t||t.length<4||t.length>20)},isPossibleEmail:function(e){return e.indexOf("@")>-1&&e.indexOf(".")>-1},isFieldByMatch:function(e,t,r){if(!e||!t||""==t)return!1;var n=t.toLowerCase(),i=r&&""!=r?r.toLowerCase():null;return e.name&&e.name.toLowerCase().indexOf(n)>-1?!i||e.name.toLowerCase().indexOf(i)>-1:!!(e.placeholder&&e.placeholder.toLowerCase().indexOf(n)>-1)&&(!i||e.placeholder.toLowerCase().indexOf(i)>-1)},isPartOfForm:a,bindAllFormsOnSubmit:function(e,t){for(var r=o(),i=document.querySelectorAll("form"),a=[].slice.call(i),s=0;s0?d==u-1&&(d=0):(n.debug("Executing callback on submit of form.",!1),t(e,r.target),d+=1)})),a[c].setAttribute("data-faitracker-form-bind",!0));var l=a[c].querySelector('*[type="submit"]');l&&!l.getAttribute("data-faitracker-form-bind")&&(u+=1,l.addEventListener("click",(function(r){d>0?d==u-1&&(d=0):(n.debug("Executing callback on click of form submit button.",!1),t(e,r.target.form),d+=1)})),l.setAttribute("data-faitracker-form-bind",!0))}},bindAllNonFormButtonOnClick:function(e,t){for(var r=document.querySelectorAll('button,input[type="button"],input[type="submit"]'),i=0;i0||e.indexOf("/sdk/user/identify")>0||e.indexOf("/sdk/capture_click")>0;return!!window.FAITRACKER_LS_AVAILABLE&&t}(t)&&d,f=String(Date.now())+Math.random(),g=(new Date).getTime();return l&&s(f,{url:t,options:a,timestamp:g}),fetch(t,a).then((function(e){l&&c(f);var t=e;return t.json().then((function(e){return t.ok?{status:t.status,body:e}:(n.debug(t),Promise.resolve(t))}))})).catch((function(e){return l&&!function(e){return!!e&&(e.toString().indexOf("abort")>-1||e.toString().indexOf("cancel")>-1)}(e)&&c(f),n.debug(e),Promise.resolve(e)}))}function g(e,t,r={},n=""){return null!=n&&""!=n&&f("post",n,r,t),f("post",e,r,t)}e.exports={get:function(e,t={},r=""){return null!=r&&""!=r&&f("get",r,t),f("get",e,t)},post:g,processAllLocalStorageBacklogRequests:function(){if(window.FAITRACKER_LS_AVAILABLE){var e=function(){for(var e=u(),t={},r=0;r0&&l("[STATUS] Processing localstorage.");for(var r=0;r0)if((new Date).getTime()-o.timestamp>18e5){n.debug("Payload older than 30 minutes skipped.",!1);continue}var a="Request failed on LS backlog processing:";fetch(o.url,o.options).then((function(e){var t=e;t.json().then((function(){t.ok||l(a+" "+o.url+" status "+t.status)}))})).catch((function(e){l(a+" "+o.url+" with error "+JSON.stringify(e))}))}}}},sendErrorAPI:d,getLocalStorageKey:a,getLocalStoragePropertyKey:function(e){return"_fai_"+e},setLocalStorage:s}},function(e,t,r){"use strict";e.exports={api:{host:"https://api.factors.ai"}}},function(e,t,r){"use strict";const n="FAITRACKER_CACHE";e.exports={getFAITrackerCache:function(e){return window[n]||(window[n]={}),window[n][e]},setFAITrackerCache:function(e,t){window[n]||(window[n]={}),window[n][e]=t},getFAITrackerCacheObject:function(){return window[n]||(window[n]={}),window[n]},currentPageURLEventName:"currentPageURLEventName",currentPageTrackEventId:"currentPageTrackEventId",currentPageOriginalURL:"currentPageOriginalURL",currentPageSpentTimeInMs:"currentPageSpentTimeInMs",lastPollerId:"lastPollerId",trackPageOnSPA:"trackPageOnSPA",lastActivityTime:"lastActivityTime",lastPageProperties:"lastPageProperties"}},function(e,t,r){"use strict";const n=r(0),i=r(1);var o=r(8);const a=r(2);var s=new o,c=!1;function u(e,t={},r){if("d54z10qzrxqjtwxivge83o4dl8pogqyf"!=e)try{return s.init(e,t,r).catch(s.handleError)}catch(e){return s.handleError(e)}}function d(){try{s.reset()}catch(e){s.handleError(e)}}function l(e,t={},r){try{s.track(e,t,!1,r).catch(s.handleError)}catch(e){s.handleError(e)}}function f(e,t=!1){try{s.page(e,t).catch(s.handleError)}catch(e){s.handleError(e)}}function g(e,t={}){try{s.updateEventProperties(e,t).catch(s.handleError)}catch(e){s.handleError(e)}}function p(e,t={}){try{s.identify(e,t).catch(s.handleError)}catch(e){s.handleError(e)}}function m(e={}){try{s.addUserProperties(e).catch(s.handleError)}catch(e){s.handleError(e)}}function h(){return s.getUserId()}function _(){return window.faitracker?window.faitracker:window.factors?window.factors:void 0}function E(){if(_()&&_().q&&_().q.length>0&&!c){c=!0,n.debug("Starting Queue",!1);try{for(;_().q.length>0;)switch(n.debug("Processing Queue",!1),_().q[0].k){case"message":if(_().q[0].a[0]===a.EV_FORM_SUBMITTED){var e=_().q[0].a[1];if(!a.hasEmailOrPhone(e)){n.debug("No email and phone, skipping form submit.",!1),_().q.shift();break}l(_().q[0].a[0],_().q[0].a[1]),_().q.shift()}break;case"track":l(_().q[0].a[0],_().q[0].a[1],_().q[0].a[2]),_().q.shift();break;case"reset":d(),_().q.shift();break;case"page":f(_().q[0].a[0],_().q[0].a[1]),_().q.shift();break;case"updateEventProperties":g(_().q[0].a[0],_().q[0].a[1]),_().q.shift();break;case"identify":p(_().q[0].a[0],_().q[0].a[1]),_().q.shift();break;case"addUserProperties":m(_().q[0].a[0]),_().q.shift();break;case"getUserId":h(),_().q.shift();break;default:s.handleError("Unknown call parameters")}}catch(e){s.handleError(e),c=!1}n.debug("Queue Processed",!1),c=!1}}let k={init:u,reset:d,track:l,page:f,updateEventProperties:g,identify:p,addUserProperties:m,getUserId:h,d:function(e){console.log(i.decode(e))}};_()&&_().TOKEN&&u(_().TOKEN,_().INIT_PARAMS,_().INIT_CALLBACK),window.addEventListener("FAITRACKER_INIT_EVENT",(function(e){u(_().TOKEN,_().INIT_PARAMS,_().INIT_CALLBACK)})),window.addEventListener("FACTORS_INIT_EVENT",(function(e){u(_().TOKEN,_().INIT_PARAMS,_().INIT_CALLBACK)})),window.addEventListener("FAITRACKER_INITIALISED_EVENT",(function(e){E(),window.addEventListener("FAITRACKER_QUEUED_EVENT",(function(e){E()}))})),window.addEventListener("FACTORS_INITIALISED_EVENT",(function(e){E(),window.addEventListener("FACTORS_QUEUED_EVENT",(function(e){E()}))})),e.exports=k},function(e,t,r){"use strict";var n=r(9);const i=r(0),o=r(3),a=r(1);var s=r(10);const c=r(11),u=r(2),d=r(6),{isLocalStorageAvailable:l}=r(1),{processAllLocalStorageBacklogRequests:f,getLocalStoragePropertyKey:g}=r(4),{lastActivityTime:p,getFAITrackerCache:m}=r(6),h=r(2),_=new Error("FAITracker SDK is not initialized."),E=new Error("No user.");function k(){return i.debug("Checking if cookies have been stored: ",!1),n.isExist(c.cookie.USER_ID)}function v(e){return k()&&(e.user_id=n.getDecoded(c.cookie.USER_ID)),e}function I(){return window.location.host+window.location.pathname+a.getCleanHash(window.location.hash)}function b(){var e=a.getCurrentUnixTimestampInMs(),t=function(){var e=d.getFAITrackerCache(d.lastActivityTime);return e||0}();if(0!=t){if(e-t<100){var r=e-t,n=P()+r;d.setFAITrackerCache(d.currentPageSpentTimeInMs,n),i.debug("Page spent time: "+n+"ms")}d.setFAITrackerCache(d.lastActivityTime,e)}else d.setFAITrackerCache(d.lastActivityTime,e)}function A(e){return"[object Object]"===Object.prototype.toString.call(e)}function w(e,t,r=0,o=1e4,a=10){var s=n.get(e);s?t(s):r<=a&&(i.debug("Checking for cookie : times "+r,!1),setTimeout((function(){w(e,t,r+1,o,a)}),o))}function T(e=0,t=0){if(0!=e&&0!=t){var r="lastTimeoutId_"+e;d.getFAITrackerCacheObject()[r]=t}}function C(e){var t=function(e=0){if(0!=e){var t="lastTimeoutId_"+e;return d.getFAITrackerCacheObject()[t]}}(e);t&&(clearTimeout(t),i.debug("Cleared timeout of "+e+"ms :"+t,!1))}function P(){var e=d.getFAITrackerCache(d.currentPageSpentTimeInMs);return e||0}function y(){this.client=null,this.config={}}function S(e={}){e=u.getTypeValidated(e);var t=document.referrer,r=d.getFAITrackerCache(d.currentPageOriginalURL);return d.getFAITrackerCache(d.trackPageOnSPA)&&r&&(t=r),e=Object.assign(e,u.getEventDefault(t))}function F(e){i.debug("Binding for form capture",!1),o.bindAllFormsOnSubmit(e,e.captureAndTrackFormSubmit),o.bindAllNonFormButtonOnClick(e,e.captureAndTrackNonFormInput)}function R(e,t){var r=t.value.trim();if(!(r.length<4)&&o.isPossibleEmail(r)){var n=t.getAttribute("data-faitracker-input-id");null==window.FAITRACKER_FORM_FILLS&&(window.FAITRACKER_FORM_FILLS={});var a=window.FAITRACKER_FORM_FILLS[n];if(""!=r&&r!=a){window.FAITRACKER_FORM_FILLS[n]=r;var s={form_id:n.split(".")[0],field_id:n,value:r},c=S(),d=u.getCustomFormProperties();return d&&Object.keys(d).length>0&&(c=Object.assign(d,c)),s.event_properties=c,v(s),i.debug(s,!1),e.client.captureFormFill(s)}}}function O(e){for(var t=document.querySelectorAll("input"),r=0;r=0||R(e,t[r])}function L(e){i.debug("Binding for form fills capture",!1);var t=o.getElemsFromTopAndIframes("form");window.FAITRACKER_FORMS_ID||(window.FAITRACKER_FORMS_ID=0);for(var r=0;r=0)){var s="noform";n[a].form&&""!=n[a].form.getAttribute("data-faitracker-form-id")&&(s=n[a].form.getAttribute("data-faitracker-form-id")),n[a].setAttribute("data-faitracker-input-id",s+".field-"+window.FAITRACKER_INPUTS_ID),n[a].addEventListener("input",(function(){R(e,this)})),n[a].addEventListener("change",(function(){R(e,this)})),window.FAITRACKER_INPUTS_ID++}for(var c=5e3;c<3e4;)setTimeout((function(){O(e)}),c),c+=5e3}y.prototype.init=function(e,t={},r){if(e=a.validatedStringArg("token",e),this.isInitialized()&&!this.isSameToken(e))return Promise.reject(new Error("FAITrackerInitError: Initialized already. Use reset() and init(), if you really want to do this."));if(!e)return Promise.reject(new Error("FAITrackerArgumentError: Invalid token."));t||(t={});let o=null;o=t.host&&""!==t.host?new s(e,t.host,t.host2):new s(e);var u=!0;!1===t.track_on_init&&(u=!1),!0===t.track_page_on_spa&&d.setFAITrackerCache(d.trackPageOnSPA,!0),l()&&(window.FAITRACKER_LS_AVAILABLE=!0);var g={},p=this;return v(g),o.getInfo(g).then((function(e){return e.status<200||e.status>308?(i.errorLine("Get project settings failed with code : ",e.status),Promise.reject(new Error("FAITrackerRequestError: Init failed. App configuration failed."))):e})).then((function(e){return p.config=e.body,p.client=o,function e(t,o,a){(function(e){if(i.debug("Setting Cookie with response: ",!1),e&&e.body&&e.body.user_id){let t=e.body.user_id.trim();t&&n.setEncoded(c.cookie.USER_ID,t,c.cookie.EXPIRY)}})(o),k()?(i.debug("Cookie consent is enabled. Continuing process",!1),window.dispatchEvent(new CustomEvent("FAITRACKER_INITIALISED_EVENT")),window.dispatchEvent(new CustomEvent("FACTORS_INITIALISED_EVENT")),function(e,t){Promise.resolve().then((function(){i.debug("Auto Track call starts",!1);var n=d.getFAITrackerCache(d.trackPageOnSPA)||e.getConfig("auto_track_spa_page_view");return d.setFAITrackerCache(d.trackPageOnSPA,n),t?e.autoTrack(e.getConfig("auto_track"),!1,r,!0):null})).then((function(){return e.autoFormCapture(e.getConfig("auto_form_capture"))})).then((function(){return e.autoCaptureFormFills(e.getConfig("auto_capture_form_fills"))})).then((function(){return e.autoClickCapture(e.getConfig("auto_click_capture"))})).then((function(){return e.autoDriftEventsCapture(e,e.getConfig("int_drift"))})).then((function(){return e.captureGaCookie(e,!0)})).then((function(){return e.captureFBCookie(e,!0)})).then((function(){return e.captureRedditCookie(e,!0)})).then((function(){return e.autoIframeFormCapture(!0)})).catch((function(e){return i.debug(e),Promise.resolve(e.stack+" during get_settings on init.")}))}(t,a)):(i.debug("Checking for cookie consent.",!1),setTimeout(()=>{e(t,o,a)},1e3))}(p,e,u),f(),e}))},y.prototype.track=function(e,t,r=!1,n){if(!this.isInitialized())return Promise.reject(_);if(!k())return Promise.reject(E);if(!function(e){return e==u.EV_FORM_SUBMITTED||0!=e.indexOf("$")}(e=a.validatedStringArg("event_name",e)))return Promise.reject(new Error("FAITrackerError: Invalid event name."));var o=window.location.href;let s={};if(v(s),s.event_name=e,s.event_properties=S(t),s.user_properties=u.getUserDefault(),s.auto=r,r){var c=u.getPageLoadTime();c>0&&(s.event_properties[u.PAGE_LOAD_TIME]=c)}return e!==u.EV_FORM_SUBMITTED||u.hasEmailOrPhone(s.event_properties)?this.client.track(s).then((function(t){if(t&&t.body){if(!t.body.event_id)return i.debug("No event_id found on track response.",!1),t;r&&function(e,t,r){e&&""!=e&&(d.setFAITrackerCache(d.currentPageOriginalURL,r),d.setFAITrackerCache(d.currentPageURLEventName,t),d.setFAITrackerCache(d.currentPageTrackEventId,e),d.setFAITrackerCache(d.lastPageProperties,{}),d.setFAITrackerCache(d.lastActivityTime,0),d.setFAITrackerCache(d.currentPageSpentTimeInMs,0))}(t.body.event_id,e,o),n&&n(t.body.event_id)}return t})):Promise.reject("No Valid Email or Phone")},y.prototype.updateEventProperties=function(e,t={}){if(!this.isInitialized())return Promise.reject(_);if(!k())return Promise.reject(E);if(!e||""==e)return Promise.reject("No eventId provided for update.");0==Object.keys(t).length&&i.debug("No properties given to update event.",!1);var r={event_id:e,properties:t};return this.client.updateEventProperties(v(r))},y.prototype.updatePagePropertiesIfChanged=function(e=0){let t=d.getFAITrackerCache(d.lastPageProperties),r=t&&t[u.PAGE_SPENT_TIME]?t[u.PAGE_SPENT_TIME]:0,n=t&&t[u.PAGE_SCROLL_PERCENT]?t[u.PAGE_SCROLL_PERCENT]:0;var o=P(),a=u.getPageScrollPercent();0==o&&e>0&&(o=e),(0==r||e>0)&&(o+=u.getPageLoadTimeInMs());var s={};if(o>0&&o>r){var c=o/1e3;c=Number(c.toFixed(2)),s[u.PAGE_SPENT_TIME]=c}if(a>0&&a>n&&(a=Number(a.toFixed(2)),s[u.PAGE_SCROLL_PERCENT]=a),Object.keys(s).length>0){i.debug("Updating page properties : "+JSON.stringify(s),!1);var l={event_id:d.getFAITrackerCache(d.currentPageTrackEventId),properties:s};this.client.updateEventProperties(v(l)).catch(i.debug)}else i.debug("No change on page properties, skipping update for : "+JSON.stringify(t),!1);d.setFAITrackerCache(d.lastPageProperties,{[u.PAGE_SCROLL_PERCENT]:a,[u.PAGE_SPENT_TIME]:o})},y.prototype.autoTrack=function(e=!1,t=!1,r,n=!1){if(!e)return!1;if(!t&&((o=d.getFAITrackerCache(d.currentPageTrackEventId))&&null!=o&&I()==d.getFAITrackerCache(d.currentPageURLEventName)))return i.debug("Page tracked already as per store : "+JSON.stringify(d.getFAITrackerCacheObject())),!1;var o;if(!k())return!1;var a=this;this.track(I(),u.getFromQueryParams(window.location),!0,r);C(5e3),T(5e3,setTimeout((function(){i.debug("Triggered properties update after 5s.",!1),a.updatePagePropertiesIfChanged(5e3)}),5e3));C(1e4),T(1e4,setTimeout((function(){i.debug("Triggered properties update after 10s.",!1),a.updatePagePropertiesIfChanged(1e4)}),1e4));var s=d.getFAITrackerCache(d.lastPollerId);clearInterval(s),s&&i.debug("Cleared previous page poller: "+s,!1);var c=setInterval((function(){a.updatePagePropertiesIfChanged()}),2e4);if(d.setFAITrackerCache(d.lastPollerId,c),window.addEventListener("beforeunload",(function(){a.updatePagePropertiesIfChanged()})),window.addEventListener("scroll",b),window.addEventListener("mouseover",b),window.addEventListener("mousemove",b),!d.getFAITrackerCache(d.trackPageOnSPA)&&window.history&&void 0!==window.onpopstate){var l=window.location.href;window.addEventListener("popstate",(function(){i.debug("Triggered window.onpopstate goto: "+window.location.href+", prev: "+l),l!==window.location.href&&(a.updatePagePropertiesIfChanged(),a.track(I(),u.getFromQueryParams(window.location),!0,r),l=window.location.href)}))}d.getFAITrackerCache(d.trackPageOnSPA)&&setInterval((function(){d.getFAITrackerCache(d.currentPageURLEventName)&&d.getFAITrackerCache(d.currentPageURLEventName)!=I()&&a.track(I(),u.getFromQueryParams(window.location),!0,r)}),1e3)},y.prototype.captureAndTrackFormSubmit=function(e,t){t||i.debug("Form element is undefined on capture form submit.");var r=u.getPropertiesFromForm(t),n=u.getFormMetaAttributes(t),o=u.getCustomFormProperties();n&&Object.keys(n).length>0&&(i.debug("Collecting form meta attributes",!1),r=Object.assign(n,r)),r&&0!=Object.keys(r).length||i.debug("No properties captured from form.",!1),r[u.EMAIL]||r[u.PHONE]?(o&&Object.keys(o).length>0&&(i.debug("Collecting custom properties",!1),r=Object.assign(o,r)),i.debug("Capturing form submit with properties: "+JSON.stringify(r),!1),e.track(u.EV_FORM_SUBMITTED,r)):i.debug("No email and phone, skipping form submit.",!1)},y.prototype.captureAndTrackNonFormInput=function(e){var t=u.getPropertiesFromAllNonFormInputs();t[u.EMAIL]||t[u.PHONE]?(i.debug("Capturing non-form submit with properties: "+JSON.stringify(t),!1),e.track(u.EV_FORM_SUBMITTED,t)):i.debug("No email and phone, skipping form submit.",!1)},y.prototype.autoDriftEventsCapture=function(e,t){return!!t&&(function e(t,r,n=0,o=null,a=1e4,s=10){if(window[t]){if(!o)return void r();if(Array.isArray(window[t])){if(window[t].find((function(e){return A(e)&&Object.keys(e).indexOf(o)>-1})))return void r()}}n<=s&&(i.debug("Checking for key: times "+n,!1),setTimeout((function(){e(t,r,n+1,o,a,s)}),a))}("drift",(function(){window.drift.on("phoneCapture",(function(t){if(!o.isPhone(t.phone))return null;var r={};r[u.PHONE]=t.phone,r[u.SOURCE]="drift",e.track(u.EV_FORM_SUBMITTED,r)})),window.drift.on("emailCapture",(function(t){if(!t.data||!t.data.email||!o.isEmail(t.data.email))return null;var r={};r[u.EMAIL]=t.data.email,r[u.SOURCE]="drift",e.track(u.EV_FORM_SUBMITTED,r)}))})),!0)},y.prototype.captureGaCookie=function(e,t){if(i.debug("Checking to capture Ga cookie"),!t)return!1;w("_ga",(function(t){h.GA_COOKIE;var r=h.GA_SESSION,o=n.getCookieKeysByRegex(/[_][g][a][_][0-9a-zA-Z]{10}/);if(i.debug("Session Cookie list"+o),window.FAITRACKER_LS_AVAILABLE){var a=window.localStorage.getItem(g("GA"));if(o.length>0)for(var s=0;s0&&(r=Object.assign(o,r)),i.debug("Tracking iframe form submit with properties: "+JSON.stringify(r),!1),t.track(u.EV_FORM_SUBMITTED,r)}}catch(e){i.debug("Error processing iframe form submission message: "+e.message,!1)}})),!0},y.prototype.autoCaptureFormFills=function(e){if(!e)return!1;L(this),o.startBackgroundFormBinder();var t=this;document.addEventListener(o.TRIGGER_FORM_BINDING_EVENT,(function(){L(t)}))},y.prototype.captureClick=function(e,t){if(!e.isInitialized())return Promise.reject(_);if(t||i.debug("Element is undefined on capture click."),!k())return Promise.reject(E);var r=o.getClickCapturePayloadFromElement(t);return r.event_properties=S(),r.user_properties=u.getUserDefault(),v(r),i.debug(t,!1),i.debug("Click capture payload: "+JSON.stringify(r),!1),e.client.captureClick(r)},y.prototype.autoClickCapture=function(e=!1){if(!e)return!1;o.startBackgroundClickBinder(this,this.captureClick)},y.prototype.page=function(e,t=!1){return this.isInitialized()?Promise.resolve(this.autoTrack(this.getConfig("auto_track"),t,e)):Promise.reject(_)},y.prototype.identify=function(e,t={}){if(!this.isInitialized())return Promise.reject(_);if(!k())return Promise.reject(E);e=a.validatedStringArg("customer_user_id",e);let r={};return v(r),r.c_uid=e,Object.keys(t).length>0&&(r.user_properties=t),this.client.identify(r)},y.prototype.addUserProperties=function(e={}){if(!this.isInitialized())return Promise.reject(_);if(!k())return Promise.reject(E);if("object"!=typeof e)return Promise.reject(new Error("FAITrackerArgumentError: Properties should be an Object(key/values)."));if(0==Object.keys(e).length)return Promise.reject("No changes. Empty properties.");e=u.getTypeValidated(e),e=Object.assign(e,u.getUserDefault());let t={};return v(t),t.properties=e,this.client.addUserProperties(t)},y.prototype.reset=function(){this.client=null,this.config={},n.remove(c.cookie.USER_ID)},y.prototype.getClient=function(){return this.client},y.prototype.getConfig=function(e){if(null!=this.config[e])return this.config[e];i.errorLine(new Error("FAITrackerConfigError: Config not present."))},y.prototype.isInitialized=function(){return!!this.client&&!!this.config&&Object.keys(this.config).length>0},y.prototype.isSameToken=function(e){return this.client&&this.client.token&&this.client.token===e},y.prototype.getUserId=function(){return n.getDecoded(c.cookie.USER_ID)},y.prototype.handleError=function(e){var t="";"string"==typeof e&&(t=e),e instanceof Error&&e.message&&(t=e.stack);let r={};return r.domain=window.location.host,r.url=window.location.href,r.error=t,r.auto_track_url=I(),v(r),new s("","").sendError(r),i.debug(e),Promise?Promise.resolve(e):e},e.exports=y},function(e,t){function r(e,t,r){let n="";if(r){let e=new Date;e.setTime(e.getTime()+24*r*60*60*1e3),n="; expires="+e.toUTCString()}let i=function(){var e,t,r="try_get_old_cookie=try_get_old_value",n=window.location.hostname.split(".");for(e=n.length-1;e>=0;e--)if(t=n.slice(e).join("."),document.cookie=r+";domain=."+t+";",document.cookie.indexOf(r)>-1)return document.cookie=r.split("=")[0]+"=;domain=."+t+";expires=Thu, 01 Jan 1970 00:00:01 GMT;",t;return window.location.hostname}();document.cookie=e+"="+(t||"")+n+"; domain="+i+"; path=/"}function n(e){let t=e+"=",r=document.cookie.split(";");for(let e=0;e0},o.prototype.getHeaders=function(){return{Authorization:this.token}},o.prototype.track=function(e){return e&&e.event_name?n.post(this.getURL("/sdk/event/track"),e,this.getHeaders(),this.getURL2("/sdk/event/track")):Promise.reject("Track failed. API Client invalid payload. Missing event_name.")},o.prototype.identify=function(e){return e&&e.c_uid?n.post(this.getURL("/sdk/user/identify"),e,this.getHeaders(),this.getURL2("/sdk/user/identify")):Promise.reject("Identify failed. API Client invalid payload. Missing customer_user_id.")},o.prototype.addUserProperties=function(e){return e&&e.properties?n.post(this.getURL("/sdk/user/add_properties"),e,this.getHeaders(),this.getURL2("/sdk/user/add_properties")):Promise.reject("Add properties failed. Missing properties on payload.")},o.prototype.updateEventProperties=function(e){return e&&e.event_id&&e.properties?n.post(this.getURL("/sdk/event/update_properties"),e,this.getHeaders(),this.getURL2("/sdk/event/update_properties")):Promise.reject("Update event properties failed. Invalid payload.")},o.prototype.captureClick=function(e){return e&&e.display_name&&e.element_type&&e.element_attributes&&e.user_id&&e.event_properties&&e.user_properties?n.post(this.getURL("/sdk/capture_click"),e,this.getHeaders(),this.getURL2("/sdk/capture_click")):Promise.reject("Capture click failed. Invalid payload.")},o.prototype.captureFormFill=function(e){return e&&e.form_id&&e.field_id&&e.user_id?n.post(this.getURL("/sdk/form_fill"),e,this.getHeaders(),this.getURL2("/sdk/form_fill")):Promise.reject("Form fill failed. Invalid payload.")},o.prototype.getInfo=function(e){return e?n.post(this.getURL("/sdk/get_info"),e,this.getHeaders(),this.getURL2("/sdk/get_info")):Promise.reject("GetInfo failed. Invalid payload.")},o.prototype.sendError=function(e){return n.sendErrorAPI(e)},e.exports=o},function(e,t){e.exports={cookie:{USER_ID:"_fuid",EXPIRY:730}}}]);