blob: fcfb0a116505967b3a7a65b4da9c3a93414ae48d [file] [log] [blame]
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.userale=t.userale||{})}(this,function(t){"use strict";function e(){var t={},e=document.currentScript||function(){var t=document.getElementsByTagName("script");return t[t.length-1]}(),o=e?e.getAttribute.bind(e):function(){return null};return t.autostart="false"!==o("data-autostart"),t.url=o("data-url")||"http://localhost:8000",t.transmitInterval=+o("data-interval")||5e3,t.logCountThreshold=+o("data-threshold")||5,t.userId=o("data-user")||null,t.version=o("data-version")||null,t.logDetails="true"===o("data-log-details"),t.resolution=+o("data-resolution")||500,t.toolName=o("data-tool")||null,t.userFromParams=o("data-user-from-params")||null,t.time=n(document.createEvent("CustomEvent")),t}function n(t){if(t.timeStamp&&t.timeStamp>0){var e,n=Date.now()-t.timeStamp;if(n<0)e=function(){return t.timeStamp/1e3};else if(n>t.timeStamp){var o=performance.timing.navigationStart;e=function(t){return t+o}}else e=function(t){return t}}else e=function(){return Date.now()};return e}function o(t,e){Object.keys(e).forEach(function(n){if("userFromParams"===n){var o=r(e[n]);o&&(t.userId=o)}t[n]=e[n]})}function r(t){var e=t,n=new RegExp("[?&]"+e+"(=([^&#]*)|&|#|$)"),o=window.location.href.match(n);return o&&o[2]?decodeURIComponent(o[2].replace(/\+/g," ")):null}function a(t,e){E=t,b=e}function u(t,e){if(!b.on)return!1;var n=null;e&&(n=e(t));var o={target:l(t.target),path:c(t),clientTime:Math.floor(t.timeStamp&&t.timeStamp>0?b.time(t.timeStamp):Date.now()),location:i(t),type:t.type,userAction:!0,details:n,userId:b.userId,toolVersion:b.version,toolName:b.toolName,useraleVersion:b.useraleVersion};return b.logCb&&b.logCb(o),E.push(o),!0}function i(t){return null!=t.pageX?{x:t.pageX,y:t.pageY}:null!=t.clientX?{x:document.documentElement.scrollLeft+t.clientX,y:document.documentElement.scrollTop+t.clientY}:{x:null,y:null}}function l(t){return t.localName?t.localName+(t.id?"#"+t.id:"")+(t.className?"."+t.className:""):t.nodeName?t.nodeName+(t.id?"#"+t.id:"")+(t.className?"."+t.className:""):t&&t.document&&t.location&&t.alert&&t.setInterval?"Window":"Unknown"}function c(t){var e=[];if(t.path)e=t.path;else for(var n=t.target;n;)e.push(n),n=n.parentElement;return s(e)}function s(t){for(var e,n=0,o=[];e=t[n];)o.push(l(e)),++n;return o}function d(t){N={click:function(t){return{clicks:t.detail,ctrl:t.ctrlKey,alt:t.altKey,shift:t.shiftKey,meta:t.metaKey}},dblclick:function(t){return{clicks:t.detail,ctrl:t.ctrlKey,alt:t.altKey,shift:t.shiftKey,meta:t.metaKey}},mousedown:function(t){return{clicks:t.detail,ctrl:t.ctrlKey,alt:t.altKey,shift:t.shiftKey,meta:t.metaKey}},mouseup:function(t){return{clicks:t.detail,ctrl:t.ctrlKey,alt:t.altKey,shift:t.shiftKey,meta:t.metaKey}},focus:null,blur:null,input:t.logDetails?function(t){return{value:t.target.value}}:null,change:t.logDetails?function(t){return{value:t.target.value}}:null,dragstart:null,dragend:null,drag:null,drop:null,keydown:t.logDetails?function(t){return{key:t.keyCode,ctrl:t.ctrlKey,alt:t.altKey,shift:t.shiftKey,meta:t.metaKey}}:null,mouseover:null,submit:null},k={},x={wheel:function(t){return{x:t.deltaX,y:t.deltaY,z:t.deltaZ}},scroll:function(){return{x:window.scrollX,y:window.scrollY}},resize:function(){return{width:window.outerWidth,height:window.outerHeight}}},I=["load","blur","focus"]}function f(t){return d(t),Object.keys(N).forEach(function(t){document.addEventListener(t,function(e){u(e,N[t])},!0)}),Object.keys(x).forEach(function(e){k[e]=!0,window.addEventListener(e,function(n){k[e]&&(k[e]=!1,u(n,x[e]),setTimeout(function(){k[e]=!0},t.resolution))},!0)}),I.forEach(function(t){window.addEventListener(t,function(t){u(t,function(){return{window:!0}})},!0)}),!0}function m(t,e){p(t,e),h(t,e)}function p(t,e){setInterval(function(){return!e.noSend&&void(t.length>=e.logCountThreshold&&(y(t.slice(0),e.url,0),t.splice(0)))},e.transmitInterval)}function h(t,e){navigator.sendBeacon?window.addEventListener("unload",function(){return!e.noSend&&void navigator.sendBeacon(e.url,JSON.stringify(t))}):window.addEventListener("beforeunload",function(){if(t.length>0){if(e.noSend)return!1;y(t,e.url,1)}})}function y(t,e,n){var o=new XMLHttpRequest,r=JSON.stringify(t);o.open("POST",e),o.setRequestHeader("Content-type","application/json;charset=UTF-8"),o.onreadystatechange=function(){4===o.readyState&&200!==o.status&&n>0&&y(t,e,n--)},o.send(r)}function v(e){t.started||setTimeout(function(){var n=document.readyState;"interactive"===n||"complete"===n?(f(e),m(j,e),t.started=e.on=!0):v(e)},100)}function g(){t.started||v(C),C.on=!0}function w(){C.on=!1}function K(t){return void 0!==t&&o(C,t),C}function S(t){return null!==t&&"object"==typeof t&&(j.push(t),!0)}var E,b,N,k,x,I,T="demo",C={},j=[];t.started=!1,C.on=!1,C.useraleVersion=T,o(C,e()),a(j,C),C.autostart&&v(C);var D=T;t.version=D,t.start=g,t.stop=w,t.options=K,t.log=S,Object.defineProperty(t,"__esModule",{value:!0})});