window.TNCMS||(window.TNCMS={}),window.TNCMS.Tracking=(function(){"use strict";var f={},a={},l=null,D=0;function v(e){console.warn&&console.warn(e)}function k(e){var n="?";if(a[e]&&window.JSON&&(n+="d=",n+=encodeURIComponent(JSON.stringify(a[e])),n+="&"),document.referrer){var i=document.referrer.match(/:\/\/(.[^/]+)/)[1];n+="rd="+encodeURIComponent(i)+"&"}return n+"i="}function b(e){for(var n=["app","url","metric","bucket","id"],i=0;i2e3&&(d?navigator.sendBeacon(t):new Image().src=t,t="//"+r[0]+"/tncms/tracking/"+c[1]+"/"+u),t+=o+","}d?navigator.sendBeacon(t):new Image().src=t}}function m(e){if(!e.app){v("Missing required parameter: app");return}if(!e.metric){v("Missing required parameter: metric");return}if(!e.id){v("Missing required parameter: id");return}var n=e.domain||document.domain,i=n+"|"+e.bucket+":"+e.app+"/"+e.metric;f[i]||(f[i]=[]),f[i]=f[i].concat(e.id),l&&window.clearTimeout(l),l=window.setTimeout(h,1e3)}function p(e){a[e.bucket]||(a[e.bucket]={}),a[e.bucket][e.name]=e.value}function w(e){a[e.bucket]&&delete a[e.bucket][e.name]}return{addEvent:function(e){e.bucket="global",m(e)},getRedirectURL:function(e){return e.bucket="global",b(e)},addData:function(e){e.bucket="global",p(e)},removeData:function(e){e.bucket="global",w(e)},trackDeclarativeEvents:function(e){e=e||{};var n=e.root||document.body,i=e.domain||document.domain,c=n.querySelectorAll("[data-tncms-tracking]"),r=function(g){return!!(g&&(g.offsetWidth||g.offsetHeight||g.getClientRects().length))},u;for(u=0;u=3&&TNCMS.Tracking.addEvent({domain:i,id:o[2],metric:o[1],app:o[0]}),v("Removing tncms tracking: "+t),d.removeAttribute("data-tncms-tracking"))}},createBucket:function(e){var n=e.app||null,i=e.metric||null,c=e.domain||document.domain,r="bucket"+D++,u=e.data||{};for(var d in u)p({bucket:r,name:d,value:u[d]});return{addEvent:function(t){m({domain:c,bucket:r,id:t,app:n,metric:i})},addData:function(t){t.bucket=r,p(t)},removeData:function(t){t.bucket=r,w(t)},getRedirectURL:function(t){return t.bucket=r,t.domain=c,b(t)}}}}})(); //# sourceMappingURL=tracking.js.map