begrowth-analytics-utils
Version:
Analytics utility functions used by 'analytics' module
2 lines (1 loc) • 7.4 kB
JavaScript
var analyticsUtils=function(e){"use strict";function t(e,t,r,n,o,i){if("undefined"!=typeof window)return 1<arguments.length?document.cookie=e+"="+encodeURIComponent(t)+(r?"; expires="+new Date(+new Date+1e3*r).toUTCString()+(n?"; path="+n:"")+(o?"; domain="+o:"")+(i?"; secure":""):""):decodeURIComponent((("; "+document.cookie).split("; "+e+"=")[1]||"").split(";")[0])}var u=t,a=t;function o(e){return t(e,"",-1)}function r(t,e){var r,n=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)),n}function l(n){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{};e%2?r(Object(o),!0).forEach(function(e){var t,r;t=n,e=o[r=e],r in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))})}return n}function n(e){return(n="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})(e)}function f(t){var r;try{"false"===(r="true"===(r=void 0===(r=JSON.parse(t))?t:r)?!0:r)&&(r=!1),parseFloat(r)===r&&"object"!==n(r)&&(r=parseFloat(r))}catch(e){r=t}return r}var s="object"===("undefined"==typeof self?"undefined":n(self))&&self.self===self&&self||"object"===("undefined"==typeof global?"undefined":n(global))&&global.global===global&&global||void 0,p="*",m="cookie",g="global",i=!1,c=function(){try{t("_c_","1");var e=-1!==document.cookie.indexOf("_c_");return t("_c_","",-1),e}catch(e){return!1}}();function d(e){return"string"==typeof e?e:e.storage}function y(e){return c&&(!e||e===m||e===p)}var b={getItem:function(e){if(!e)return null;var t=d(1<arguments.length&&void 0!==arguments[1]?arguments[1]:{});if(t===p)return{cookie:f(u(r=e)),localStorage:f(localStorage.getItem(r)),global:s[r]||null};if(y(t)){var r=u(e);if(r||t===m)return f(r)}return s[e]||null},setItem:function(e,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};if(e&&void 0!==t){var n={},o=d(r),i=JSON.stringify(t),r=o===p;if(y(o)){var c={current:t,previous:f(u(e))};if(a(e,i),!r)return l({location:m},c);n[m]=c}c={current:t,previous:s[e]};return(s[e]=t,r)?(n[g]=c,n):l({location:g},c)}},removeItem:function(e){if(!e)return!1;var t=d(1<arguments.length&&void 0!==arguments[1]?arguments[1]:{}),r=t===p,n=[];return(r||i)&&(localStorage.removeItem(e),n.push("localStorage")),(r||y(t))&&(o(e),n.push(m)),!r&&((t=t)&&t!==g)||(s[e]=void 0,n.push(g)),n}};function v(e){return(v="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})(e)}function h(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(e){return null}}var x="undefined"!=typeof document;function O(e){if(!x)return!1;var t=e||document.referrer;if(t){e=window.document.location.port,t=t.split("/")[2];return(t=e?t.replace(":".concat(e),""):t)!==window.location.hostname}return!1}function w(e,t){var r=(e.split("?")||[,])[1];if(!r||-1===r.indexOf(t))return e;t=new RegExp("(\\&|\\?)".concat(t,'([_A-Za-z0-9"+=.\\/\\-@%]+)'),"g"),t="?".concat(r).replace(t,"").replace(/^&/,"?");return e.replace("?".concat(r),t)}function j(e){return function(e){var t,r={},n=/([^&=]+)=?([^&]*)/g;for(;i=n.exec(e);){var o=h(i[1]),i=h(i[2]);"[]"===o.substring(o.length-2)?(o=o.substring(0,o.length-2),(r[o]||(r[o]=[])).push(i)):r[o]=""===i||i}for(t in r){var c=t.split("[");1<c.length&&(function(e,t,r){for(var n=t.length-1,o=0;o<n;++o){var i=t[o];i in e||(e[i]={}),e=e[i]}e[t[n]]=r}(r,c.map(function(e){return e.replace(/[?[\]\\ ]/g,"")}),r[t]),delete r[t])}return r}(function(e){if(e){e=e.match(/\?(.*)/);return e&&e[1]?e[1].split("#")[0]:""}return x&&window.location.search.substring(1)}(e))}function S(e){if(!x)return null;var t=document.createElement("a");return t.setAttribute("href",e),t.hostname}function P(e){return(S(e)||"").split(".").slice(-2).join(".")}function k(e){var t=e.split(".");return 1<t.length?t.slice(0,-1).join("."):e}var D={trimTld:k,getDomainBase:P,getDomainHost:S},E="google";var R={"daum.net":"q","eniro.se":"search_word","naver.com":"query","yahoo.com":"p","msn.com":"q","aol.com":"q","ask.com":"q","baidu.com":"wd","yandex.com":"text","rambler.ru":"words",google:"q","bing.com":{p:"q",n:"live"}};return e.decodeUri=h,e.dotProp=function(e,t,r,n,o){for(t=t.split?t.split("."):t,n=0;n<t.length;n++)e=e?e[t[n]]:o;return e===o?r:e},e.getBrowserLocale=function(){if(x){var e=navigator,t=e.language,r=e.languages,e=e.userLanguage;return e||(r&&r.length?r[0]:t)}},e.getCookie=u,e.getTimeZone=function(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(e){}},e.globalContext=s,e.inBrowser=x,e.isArray=function(e){return Array.isArray(e)},e.isBoolean=function(e){return"boolean"==typeof e},e.isExternalReferrer=O,e.isFunction=function(e){return"function"==typeof e},e.isObject=function(e){if("object"!==v(e)||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t},e.isScriptLoaded=function(t){if(!x)return!0;var r=document.getElementsByTagName("script");return!!Object.keys(r).filter(function(e){e=r[e].src;return"string"==typeof t?-1!==e.indexOf(t):t instanceof RegExp&&e.match(t)}).length},e.isString=function(e){return"string"==typeof e},e.isUndefined=function(e){return void 0===e},e.noOp=function(){},e.paramsClean=w,e.paramsGet=function(e,t){return h((RegExp("".concat(e,"=(.+?)(&|$)")).exec(t)||[,""])[1])},e.paramsParse=j,e.paramsRemove=function(n,o){return x?new Promise(function(e,t){var r;return window.history&&window.history.replaceState&&((r=window.location.href)!==(r=w(r,n))&&history.replaceState({},"",r)),o&&o(),e()}):Promise.resolve()},e.parseReferrer=function(e,t){if(!x)return!1;var r={source:"(direct)",medium:"(direct)",campaign:"(direct)"};e&&O(e)&&(r.referrer=e),(e=function(e){if(!e||!x)return!1;var t=P(e),r=document.createElement("a");r.href=e,-1<r.hostname.indexOf(E)&&(t=E);if(R[t]){var n=R[t],o="string"==typeof n?n:n.p,o=new RegExp(o+"=.*?([^&#]*|$)","gi"),o=r.search.match(o);return{source:n.n||k(t),medium:"direct",term:(o?o[0].split("=")[1]:"")||"(not provided)"}}e=O(e)?"referral":"direct";return{source:r.hostname,medium:e}}(e))&&Object.keys(e).length&&(r=Object.assign({},r,e));var n=j(t);return(t=Object.keys(n)).length?(t=t.reduce(function(e,t){return t.match(/^utm_/)&&(e["".concat(t.replace(/^utm_/,""))]=n[t]),t.match(/^(d|g)clid/)&&(e.source=E,e.medium=n.gclid?"cpc":"cpm",e[t]=n[t]),e},{}),Object.assign({},r,t)):r},e.removeCookie=o,e.setCookie=a,e.storage=b,e.throttle=function(r,n){function o(){l=new Date,a=null,u=r.apply(i,c)}var i,c,u,a=null,l=0;return function(){var e=new Date,t=n-(e-(l=l||e));return i=this,c=arguments,t<=0?(clearTimeout(a),a=null,l=e,u=r.apply(i,c)):a=a||setTimeout(o,t),u}},e.url=D,e.uuid=function(){for(var e="",t=0,r=4294967295*Math.random()|0;t++<36;){var n="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"[t-1],o=15&r;e+="-"==n||"4"==n?n:("x"==n?o:3&o|8).toString(16),r=t%8==0?4294967295*Math.random()|0:r>>4}return e},e}({});