@wireapp/telemetry 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/embed.js +195 -161
- package/package.json +4 -4
package/lib/embed.js
CHANGED
|
@@ -1,161 +1,195 @@
|
|
|
1
|
-
(function(
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
function
|
|
6
|
-
|
|
7
|
-
(m
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
m.
|
|
11
|
-
m.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
function
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
b(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
a
|
|
35
|
-
|
|
36
|
-
(
|
|
37
|
-
|
|
38
|
-
(
|
|
39
|
-
a+"]
|
|
40
|
-
|
|
41
|
-
a
|
|
42
|
-
|
|
43
|
-
h
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
b(
|
|
54
|
-
"
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
b(
|
|
63
|
-
b(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
a
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
"
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
"
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
d){b(
|
|
91
|
-
a
|
|
92
|
-
a
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
b)
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
typeof
|
|
101
|
-
"
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
"
|
|
108
|
-
|
|
109
|
-
a
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
b(
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
(b(
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
e
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
e,h){if(
|
|
129
|
-
this
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
"
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
1
|
+
(function(va,Ja){"object"===typeof exports&&"undefined"!==typeof module?Ja(exports):"function"===typeof define&&define.amd?define(["exports"],Ja):(va="undefined"!==typeof globalThis?globalThis:va||self,Ja(va.Countly=va.Countly||{}))})(this,function(va){function Ja(m,p,v){if("function"==typeof m?m===p:m.has(p))return 3>arguments.length?p:v;throw new TypeError("Private element is not present on this object");}function b(m,p){return m.get(Ja(m,p))}function q(m,p,v){if(p.has(m))throw new TypeError("Cannot initialize the same private elements twice on an object");
|
|
2
|
+
p.set(m,v)}function l(m,p,v){return m.set(Ja(m,p),v),v}function w(m,p,v){a:{var a=p;if("object"==typeof a&&a){var F=a[Symbol.toPrimitive];if(void 0!==F){a=F.call(a,"string");if("object"!=typeof a)break a;throw new TypeError("@@toPrimitive must return a primitive value.");}a=String(a)}}return(p="symbol"==typeof a?a:a+"")in m?Object.defineProperty(m,p,{value:v,enumerable:!0,configurable:!0,writable:!0}):m[p]=v,m}function R(m){"@babel/helpers - typeof";return R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?
|
|
3
|
+
function(p){return typeof p}:function(p){return p&&"function"==typeof Symbol&&p.constructor===Symbol&&p!==Symbol.prototype?"symbol":typeof p},R(m)}function ac(m){var p=[];if("undefined"!==typeof m.options)for(var v=0;v<m.options.length;v++)m.options[v].selected&&p.push(m.options[v].value);return p.join(", ")}function Cb(){var m=bc("xxxxxxxx","[x]");var p=Date.now().toString();return m+p}function Db(){return bc("xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx","[xy]")}function bc(m,p){var v=(new Date).getTime();
|
|
4
|
+
return m.replace(new RegExp(p,"g"),function(a){var F=(v+16*Math.random())%16|0;return("x"===a?F:F&3|8).toString(16)})}function K(){return Math.floor((new Date).getTime()/1E3)}function Eb(){var m=(new Date).getTime();jb>=m?jb++:jb=m;return jb}function x(m,p,v){if(p&&Object.keys(p).length){if("undefined"!==typeof p[m])return p[m]}else if("undefined"!==typeof t[m])return t[m];return v}function Fb(m,p,v){for(var a in t.i)t.i[a].tracking_crashes&&t.i[a].recordError(m,p,v)}function Gb(m,p){var v=[],a;for(a in m)v.push(a+
|
|
5
|
+
"="+encodeURIComponent(m[a]));var F=v.join("&");return p?cc(F,p).then(function(c){return F+="&checksum256="+c}):Promise.resolve(F)}function Ka(m){return"string"===typeof m&&"/"===m.substring(m.length-1)?m.substring(0,m.length-1):m}function Ya(m,p){for(var v={},a,F=0,c=p.length;F<c;F++)a=p[F],"undefined"!==typeof m[a]&&(v[a]=m[a]);return v}function ka(m,p,v,a,F,c){var d={};if(m){if(Object.keys(m).length>a){var g={},h=0,n;for(n in m)h<a&&(g[n]=m[n],h++);m=g}for(var k in m)a=C(k,p,F,c),g=C(m[k],v,F,
|
|
6
|
+
c),d[a]=g}return d}function C(m,p,v,a){var F=m;"number"===typeof m&&(m=m.toString());"string"===typeof m&&m.length>p&&(F=m.substring(0,p),a(f.DEBUG,v+", Key: [ "+m+" ] is longer than accepted length. It will be truncated."));return F}function cc(m,p){m=(new TextEncoder).encode(m+p);return crypto.subtle.digest("SHA-256",m).then(function(v){return Array.from(new Uint8Array(v)).map(function(a){return a.toString(16).padStart(2,"0")}).join("")})}function D(m,p,v){A&&(null===m||"undefined"===typeof m?Za()&&
|
|
7
|
+
console.warn("[WARNING] [Countly] add_event_listener, Can't bind ["+p+"] event to nonexisting element"):"undefined"!==typeof m.addEventListener?m.addEventListener(p,v,!1):m.attachEvent("on"+p,v))}function kb(m){return m?"undefined"!==typeof m.target?m.target:m.srcElement:window.event.srcElement}function La(m){if(m)return m;(m=navigator.userAgent)||(m=Hb());return m}function Hb(m){if(m)return m;m="";navigator.userAgentData&&(m=navigator.userAgentData.brands.map(function(p){return p.brand+":"+p.version}).join(),
|
|
8
|
+
m+=navigator.userAgentData.mobile?" mobi ":" ",m+=navigator.userAgentData.platform);return m}function dc(m){if(!m){if(navigator.userAgentData&&navigator.userAgentData.mobile)return"phone";m=La()}m=m.toLowerCase();var p="desktop",v=/(mobi|ipod|phone|blackberry|opera mini|fennec|minimo|symbian|psp|nintendo ds|archos|skyfire|puffin|blazer|bolt|gobrowser|iris|maemo|semc|teashark|uzard)/;/(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(m)?
|
|
9
|
+
p="tablet":v.test(m)&&(p="phone");return p}function ec(m){var p=/(CountlySiteBot|nuhk|Googlebot|GoogleSecurityScanner|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver|bingbot|Google Web Preview|Mediapartners-Google|AdsBot-Google|Baiduspider|Ezooms|YahooSeeker|AltaVista|AVSearch|Mercator|Scooter|InfoSeek|Ultraseek|Lycos|Wget|YandexBot|Yandex|YaDirectFetcher|SiteBot|Exabot|AhrefsBot|MJ12bot|TurnitinBot|magpie-crawler|Nutch Crawler|CMS Crawler|rogerbot|Domnutch|ssearch_bot|XoviBot|netseer|digincore|fr-crawler|wesee|AliasIO|contxbot|PingdomBot|BingPreview|HeadlessChrome|Lighthouse)/;
|
|
10
|
+
if(m)return p.test(m);m=p.test(La());p=p.test(Hb());return m||p}function Ib(m){"undefined"===typeof m.pageY&&"number"===typeof m.clientX&&document.documentElement&&(m.pageX=m.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,m.pageY=m.clientY+document.body.scrollTop+document.documentElement.scrollTop);return m}function lb(){var m=document;return Math.max(Math.max(m.body.scrollHeight,m.documentElement.scrollHeight),Math.max(m.body.offsetHeight,m.documentElement.offsetHeight),Math.max(m.body.clientHeight,
|
|
11
|
+
m.documentElement.clientHeight))}function Jb(){var m=document;return Math.max(Math.max(m.body.scrollWidth,m.documentElement.scrollWidth),Math.max(m.body.offsetWidth,m.documentElement.offsetWidth),Math.max(m.body.clientWidth,m.documentElement.clientWidth))}function fc(){var m=document;return Math.min(Math.min(m.body.clientHeight,m.documentElement.clientHeight),Math.min(m.body.offsetHeight,m.documentElement.offsetHeight),window.innerHeight)}function gc(m,p,v,a,F,c){m=document.createElement(m);var d;
|
|
12
|
+
m.setAttribute(p,v);m.setAttribute(a,F);p=function(){d||c();d=!0};c&&(m.onreadystatechange=p,m.onload=p);document.getElementsByTagName("head")[0].appendChild(m)}function hc(m,p){gc("script","type","text/javascript","src",m,p)}function mb(m,p){gc("link","rel","stylesheet","href",m,p)}function ic(){if(A){var m=document.getElementById("cly-loader");if(!m){var p=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=
|
|
13
|
+
"#cly-loader {height: 4px; width: 100%; position: absolute; z-index: 99999; overflow: hidden; background-color: #fff; top:0px; left:0px;}#cly-loader:before{display: block; position: absolute; content: ''; left: -200px; width: 200px; height: 4px; background-color: #2EB52B; animation: cly-loading 2s linear infinite;}@keyframes cly-loading { from {left: -200px; width: 30%;} 50% {width: 30%;} 70% {width: 70%;} 80% { left: 50%;} 95% {left: 120%;} to {left: 100%;}}":v.appendChild(document.createTextNode("#cly-loader {height: 4px; width: 100%; position: absolute; z-index: 99999; overflow: hidden; background-color: #fff; top:0px; left:0px;}#cly-loader:before{display: block; position: absolute; content: ''; left: -200px; width: 200px; height: 4px; background-color: #2EB52B; animation: cly-loading 2s linear infinite;}@keyframes cly-loading { from {left: -200px; width: 30%;} 50% {width: 30%;} 70% {width: 70%;} 80% { left: 50%;} 95% {left: 120%;} to {left: 100%;}}"));
|
|
14
|
+
p.appendChild(v);m=document.createElement("div");m.setAttribute("id","cly-loader");window.addEventListener("load",function(){if(t.showLoaderProtection)Za()&&console.warn("[WARNING] [Countly] showLoader, Loader is already on");else try{document.body.appendChild(m)}catch(a){Za()&&console.error("[ERROR] [Countly] showLoader, Body is not loaded for loader to append: "+a)}})}m.style.display="block"}}function Za(){return t&&t.debug&&"undefined"!==typeof console?!0:!1}function jc(){if(A){t.showLoaderProtection=
|
|
15
|
+
!0;var m=document.getElementById("cly-loader");m&&(m.style.display="none")}}function Gc(m){var p=document.createElement("script"),v=document.createElement("script");p.async=!0;v.async=!0;p.src=t.customSourceBoomerang||kc.BOOMERANG_SRC;v.src=t.customSourceCountlyBoomerang||kc.CLY_BOOMERANG_SRC;document.getElementsByTagName("head")[0].appendChild(p);document.getElementsByTagName("head")[0].appendChild(v);var a=!1,F=!1;p.onload=function(){a=!0};v.onload=function(){F=!0};var c=0,d=setInterval(function(){c+=
|
|
16
|
+
50;if(a&&F||1500<=c){if(t.debug){var g="BoomerangJS loaded:["+a+"], countly_boomerang loaded:["+F+"].";a&&F?console.log("[DEBUG] "+g):console.warn("[WARNING] "+g+" Initializing without APM.")}t.init(m);clearInterval(d)}},50)}var O={NPS:"[CLY]_nps",SURVEY:"[CLY]_survey",STAR_RATING:"[CLY]_star_rating",VIEW:"[CLY]_view",ORIENTATION:"[CLY]_orientation",ACTION:"[CLY]_action"},Hc=Object.values(O),f={ERROR:"[ERROR] ",WARNING:"[WARNING] ",INFO:"[INFO] ",DEBUG:"[DEBUG] ",VERBOSE:"[VERBOSE] "},kc={BOOMERANG_SRC:"https://cdn.jsdelivr.net/npm/countly-sdk-web@latest/plugin/boomerang/boomerang.min.js",
|
|
17
|
+
CLY_BOOMERANG_SRC:"https://cdn.jsdelivr.net/npm/countly-sdk-web@latest/plugin/boomerang/countly_boomerang.js"},Z=Object.freeze({errorCount:"cly_hc_error_count",warningCount:"cly_hc_warning_count",statusCode:"cly_hc_status_code",errorMessage:"cly_hc_error_message"}),lc=/^(((([^:\/#\?]+:)?(?:(\/\/)((?:(([^:@\/#\?]+)(?::([^:@\/#\?]+))?)@)?(([^:\/#\?\]\[]+|\[[^\/\]@#?]+\])(?::([0-9]+))?))?)?)?((\/?(?:[^\/\?#]+\/+)*)([^\?#]*)))?(\?[^#]+)?)(#.*)?/,A="undefined"!==typeof window,t=globalThis.Countly||{},
|
|
18
|
+
jb=0,$a=new WeakMap,mc=new WeakMap,Ma=new WeakMap,X=new WeakMap,ab=new WeakMap,Na=new WeakMap,Oa=new WeakMap,Pa=new WeakMap,L=new WeakMap,N=new WeakMap,P=new WeakMap,la=new WeakMap,aa=new WeakMap,ba=new WeakMap,bb=new WeakMap,wa=new WeakMap,fa=new WeakMap,cb=new WeakMap,S=new WeakMap,xa=new WeakMap,ya=new WeakMap,db=new WeakMap,Qa=new WeakMap,za=new WeakMap,ra=new WeakMap,Ra=new WeakMap,Aa=new WeakMap,sa=new WeakMap,ha=new WeakMap,Ba=new WeakMap,Sa=new WeakMap,Ta=new WeakMap,M=new WeakMap,ca=new WeakMap,
|
|
19
|
+
ma=new WeakMap,nb=new WeakMap,na=new WeakMap,ta=new WeakMap,H=new WeakMap,Ca=new WeakMap,Da=new WeakMap,eb=new WeakMap,oa=new WeakMap,Ua=new WeakMap,ia=new WeakMap,ua=new WeakMap,pa=new WeakMap,fb=new WeakMap,I=new WeakMap,gb=new WeakMap,ob=new WeakMap,Kb=new WeakMap,Ea=new WeakMap,Va=new WeakMap,Wa=new WeakMap,pb=new WeakMap,nc=new WeakMap,Lb=new WeakMap,Y=new WeakMap,Mb=new WeakMap,da=new WeakMap,ja=new WeakMap,Nb=new WeakMap,Ob=new WeakMap,qb=new WeakMap,rb=new WeakMap,Pb=new WeakMap,Qb=new WeakMap,
|
|
20
|
+
oc=new WeakMap,Rb=new WeakMap,pc=new WeakMap,qc=new WeakMap,sb=new WeakMap,Fa=new WeakMap,tb=new WeakMap,Sb=new WeakMap,ub=new WeakMap,rc=new WeakMap,Tb=new WeakMap,Ga=new WeakMap,Q=new WeakMap,hb=new WeakMap,sc=new WeakMap,Ha=new WeakMap,vb=new WeakMap,tc=new WeakMap,Ub=new WeakMap,ib=new WeakMap,wb=new WeakMap,xb=new WeakMap,e=new WeakMap,ea=new WeakMap,Vb=new WeakMap,Wb=new WeakMap,yb=new WeakMap,zb=new WeakMap,Xb=new WeakMap,Ab=new WeakMap,uc=new WeakMap,Yb=new WeakMap,vc=new WeakMap,wc=new WeakMap,
|
|
21
|
+
xc=new WeakMap,yc=new WeakMap,Zb=new WeakMap,B=new WeakMap,z=new WeakMap,T=new WeakMap,zc=new WeakMap,Ac=new WeakMap,Bc=new WeakMap,Cc=new WeakMap,qa=new WeakMap,Ec=function(m,p,v){return Object.defineProperty(m,"prototype",{writable:!1}),m}(function v(p){var a=this;if(!(this instanceof v))throw new TypeError("Cannot call a class as a function");q(this,$a,void 0);q(this,mc,void 0);q(this,Ma,void 0);q(this,X,void 0);q(this,ab,void 0);q(this,Na,void 0);q(this,Oa,void 0);q(this,Pa,void 0);q(this,L,void 0);
|
|
22
|
+
q(this,N,void 0);q(this,P,void 0);q(this,la,void 0);q(this,aa,void 0);q(this,ba,void 0);q(this,bb,void 0);q(this,wa,void 0);q(this,fa,void 0);q(this,cb,void 0);q(this,S,void 0);q(this,xa,void 0);q(this,ya,void 0);q(this,db,void 0);q(this,Qa,void 0);q(this,za,void 0);q(this,ra,void 0);q(this,Ra,void 0);q(this,Aa,void 0);q(this,sa,void 0);q(this,ha,void 0);q(this,Ba,void 0);q(this,Sa,void 0);q(this,Ta,void 0);q(this,M,void 0);q(this,ca,void 0);q(this,ma,void 0);q(this,nb,void 0);q(this,na,void 0);q(this,
|
|
23
|
+
ta,void 0);q(this,H,void 0);q(this,Ca,void 0);q(this,Da,void 0);q(this,eb,void 0);q(this,oa,void 0);q(this,Ua,void 0);q(this,ia,void 0);q(this,ua,void 0);q(this,pa,void 0);q(this,fb,void 0);q(this,I,void 0);q(this,gb,void 0);q(this,ob,void 0);q(this,Kb,void 0);q(this,Ea,void 0);q(this,Va,void 0);q(this,Wa,void 0);q(this,pb,void 0);q(this,nc,function(c){a.serialize=x("serialize",c,t.serialize);a.deserialize=x("deserialize",c,t.deserialize);a.getViewName=x("getViewName",c,t.getViewName);a.getViewUrl=
|
|
24
|
+
x("getViewUrl",c,t.getViewUrl);a.getSearchQuery=x("getSearchQuery",c,t.getSearchQuery);a.DeviceIdType=t.DeviceIdType;a.namespace=x("namespace",c,"");a.clearStoredId=x("clear_stored_id",c,!1);a.app_key=x("app_key",c,null);a.onload=x("onload",c,[]);a.utm=x("utm",c,{source:!0,medium:!0,campaign:!0,term:!0,content:!0});a.ignore_prefetch=x("ignore_prefetch",c,!0);a.rcAutoOptinAb=x("rc_automatic_optin_for_ab",c,!0);a.useExplicitRcApi=x("use_explicit_rc_api",c,!1);a.debug=x("debug",c,!1);a.test_mode=x("test_mode",
|
|
25
|
+
c,!1);a.test_mode_eq=x("test_mode_eq",c,!1);a.metrics=x("metrics",c,{});a.headers=x("headers",c,{});a.url=Ka(x("url",c,""));a.app_version=x("app_version",c,"0.0");a.country_code=x("country_code",c,null);a.city=x("city",c,null);a.ip_address=x("ip_address",c,null);a.ignore_bots=x("ignore_bots",c,!0);a.force_post=x("force_post",c,!1);a.remote_config=x("remote_config",c,!1);a.ignore_visitor=x("ignore_visitor",c,!1);a.require_consent=x("require_consent",c,!1);a.track_domains=A?x("track_domains",c,!0):
|
|
26
|
+
void 0;a.storage=x("storage",c,"default");a.enableOrientationTracking=A?x("enable_orientation_tracking",c,!0):void 0;a.maxKeyLength=x("max_key_length",c,128);a.maxValueSize=x("max_value_size",c,256);a.maxSegmentationValues=x("max_segmentation_values",c,100);a.maxBreadcrumbCount=x("max_breadcrumb_count",c,null);a.maxStackTraceLinesPerThread=x("max_stack_trace_lines_per_thread",c,30);a.maxStackTraceLineLength=x("max_stack_trace_line_length",c,200);a.heatmapWhitelist=x("heatmap_whitelist",c,[]);a.salt=
|
|
27
|
+
x("salt",c,null);a.hcErrorCount=b(B,a).call(a,Z.errorCount)||0;a.hcWarningCount=b(B,a).call(a,Z.warningCount)||0;a.hcStatusCode=b(B,a).call(a,Z.statusCode)||-1;a.hcErrorMessage=b(B,a).call(a,Z.errorMessage)||"";l(Wa,a,x("content_zone_timer_interval",c,null));b(Wa,a)&&l(ob,a,1E3*Math.max(b(Wa,a),15));b(sa,a)&&!a.maxBreadcrumbCount?(a.maxBreadcrumbCount=b(sa,a),b(e,a).call(a,f.WARNING,"initialize, 'maxCrashLogs' is deprecated. Use 'maxBreadcrumbCount' instead!")):b(sa,a)||a.maxBreadcrumbCount||(a.maxBreadcrumbCount=
|
|
28
|
+
100);"cookie"===a.storage&&l(na,a,!1);a.rcAutoOptinAb||a.useExplicitRcApi||(b(e,a).call(a,f.WARNING,"initialize, Auto opting is disabled, switching to explicit RC API"),a.useExplicitRcApi=!0);Array.isArray(b(ba,a))||l(ba,a,[]);""===a.url&&(b(e,a).call(a,f.ERROR,"initialize, Please provide server URL"),a.ignore_visitor=!0);b(B,a).call(a,"cly_ignore")&&(a.ignore_visitor=!0);b(Pb,a).call(a);if(A)if(window.name&&0===window.name.indexOf("cly:"))try{a.passed_data=JSON.parse(window.name.replace("cly:",""))}catch(G){b(e,
|
|
29
|
+
a).call(a,f.ERROR,"initialize, Could not parse name: "+window.name+", error: "+G)}else if(location.hash&&0===location.hash.indexOf("this.#cly:"))try{a.passed_data=JSON.parse(location.hash.replace("this.#cly:",""))}catch(G){b(e,a).call(a,f.ERROR,"initialize, Could not parse hash: "+location.hash+", error: "+G)}if((a.passed_data&&a.passed_data.app_key&&a.passed_data.app_key===a.app_key||a.passed_data&&!a.passed_data.app_key&&b(Ma,a))&&a.passed_data.token&&a.passed_data.purpose){a.passed_data.token!==
|
|
30
|
+
b(B,a).call(a,"cly_old_token")&&(b(Yb,a).call(a,a.passed_data.token),b(z,a).call(a,"cly_old_token",a.passed_data.token));var d=[];Array.isArray(a.heatmapWhitelist)?(a.heatmapWhitelist.push(a.url),d=a.heatmapWhitelist.map(function(G){return Ka(G)})):d=[a.url];d.includes(a.passed_data.url)&&"heatmap"===a.passed_data.purpose&&(a.ignore_visitor=!0,ic(),hc(a.passed_data.url+"/views/heatmap.js",jc))}if(a.ignore_visitor)b(e,a).call(a,f.WARNING,"initialize, ignore_visitor:["+a.ignore_visitor+"], this user will not be tracked");
|
|
31
|
+
else{b(zc,a).call(a);l(L,a,b(B,a).call(a,"cly_queue")||[]);l(N,a,b(B,a).call(a,"cly_event")||[]);l(P,a,b(B,a).call(a,"cly_remote_configs")||{});d="[CLY]_temp_id"===b(B,a).call(a,"cly_id");a.clearStoredId&&(b(B,a).call(a,"cly_id")&&!d&&(a.device_id=b(B,a).call(a,"cly_id"),b(e,a).call(a,f.DEBUG,"initialize, temporarily using the previous device ID to flush existing events"),l(H,a,b(B,a).call(a,"cly_id_type")),b(H,a)||(b(e,a).call(a,f.DEBUG,"initialize, No device ID type info from the previous session, falling back to DEVELOPER_SUPPLIED, for event flushing"),
|
|
32
|
+
l(H,a,0)),b(Fa,a).call(a),a.device_id=void 0,l(H,a,1)),b(e,a).call(a,f.INFO,"initialize, Clearing the device ID storage"),b(T,a).call(a,"cly_id"),b(T,a).call(a,"cly_id_type"),b(T,a).call(a,"cly_session"));"javascript_native_web"===b(ua,a)&&"24.11.2"===b(pa,a)?b(e,a).call(a,f.DEBUG,"initialize, SDK name:["+b(ua,a)+"], version:["+b(pa,a)+"]"):b(e,a).call(a,f.DEBUG,"initialize, SDK name:["+b(ua,a)+"], version:["+b(pa,a)+"], default name:[javascript_native_web] and default version:[24.11.2]");b(e,a).call(a,
|
|
33
|
+
f.DEBUG,"initialize, app_key:["+a.app_key+"], url:["+a.url+"]");b(e,a).call(a,f.DEBUG,"initialize, device_id:["+x("device_id",c,void 0)+"]");b(e,a).call(a,f.DEBUG,"initialize, require_consent is enabled:["+a.require_consent+"]");try{b(e,a).call(a,f.DEBUG,"initialize, metric override:["+JSON.stringify(a.metrics)+"]"),b(e,a).call(a,f.DEBUG,"initialize, header override:["+JSON.stringify(a.headers)+"]"),b(e,a).call(a,f.DEBUG,"initialize, number of onload callbacks provided:["+a.onload.length+"]"),b(e,
|
|
34
|
+
a).call(a,f.DEBUG,"initialize, utm tags:["+JSON.stringify(a.utm)+"]"),b(ba,a)&&b(e,a).call(a,f.DEBUG,"initialize, referrers to ignore :["+JSON.stringify(b(ba,a))+"]"),b(e,a).call(a,f.DEBUG,"initialize, salt given:["+!!a.salt+"]")}catch(G){b(e,a).call(a,f.ERROR,"initialize, Could not stringify some config object values")}b(e,a).call(a,f.DEBUG,"initialize, app_version:["+a.app_version+"]");b(e,a).call(a,f.DEBUG,"initialize, provided location info; country_code:["+a.country_code+"], city:["+a.city+"], ip_address:["+
|
|
35
|
+
a.ip_address+"]");""!==a.namespace&&b(e,a).call(a,f.DEBUG,"initialize, namespace given:["+a.namespace+"]");a.clearStoredId&&b(e,a).call(a,f.DEBUG,"initialize, clearStoredId flag set to:["+a.clearStoredId+"]");a.ignore_prefetch&&b(e,a).call(a,f.DEBUG,"initialize, ignoring pre-fetching and pre-rendering from counting as real website visits :["+a.ignore_prefetch+"]");a.test_mode&&b(e,a).call(a,f.WARNING,"initialize, test_mode:["+a.test_mode+"], request queue won't be processed");a.test_mode_eq&&b(e,
|
|
36
|
+
a).call(a,f.WARNING,"initialize, test_mode_eq:["+a.test_mode_eq+"], event queue won't be processed");a.heatmapWhitelist&&b(e,a).call(a,f.DEBUG,"initialize, heatmap whitelist:["+JSON.stringify(a.heatmapWhitelist)+"], these domains will be whitelisted");"default"!==a.storage&&b(e,a).call(a,f.DEBUG,"initialize, storage is set to:["+a.storage+"]");a.ignore_bots&&b(e,a).call(a,f.DEBUG,"initialize, ignore traffic from bots :["+a.ignore_bots+"]");a.force_post&&b(e,a).call(a,f.DEBUG,"initialize, forced post method for all requests:["+
|
|
37
|
+
a.force_post+"]");a.remote_config&&b(e,a).call(a,f.DEBUG,"initialize, remote_config callback provided:["+!!a.remote_config+"]");"boolean"===typeof a.rcAutoOptinAb&&b(e,a).call(a,f.DEBUG,"initialize, automatic RC optin is enabled:["+a.rcAutoOptinAb+"]");a.useExplicitRcApi||b(e,a).call(a,f.WARNING,"initialize, will use legacy RC API. Consider enabling new API during init with use_explicit_rc_api flag");a.track_domains&&b(e,a).call(a,f.DEBUG,"initialize, tracking domain info:["+a.track_domains+"]");
|
|
38
|
+
a.enableOrientationTracking&&b(e,a).call(a,f.DEBUG,"initialize, enableOrientationTracking:["+a.enableOrientationTracking+"]");b(ha,a)||b(e,a).call(a,f.WARNING,"initialize, use_session_cookie is enabled:["+b(ha,a)+"]");b(M,a)&&b(e,a).call(a,f.DEBUG,"initialize, offline_mode:["+b(M,a)+"], user info won't be send to the servers");b(P,a)&&b(e,a).call(a,f.DEBUG,"initialize, stored remote configs:["+JSON.stringify(b(P,a))+"]");b(Wa,a)&&b(e,a).call(a,f.DEBUG,"initialize, content_zone_timer_interval:["+b(Wa,
|
|
39
|
+
a)+"]");b(e,a).call(a,f.DEBUG,"initialize, 'getViewName' callback override provided:["+(a.getViewName!==t.getViewName)+"]");b(e,a).call(a,f.DEBUG,"initialize, 'getSearchQuery' callback override provided:["+(a.getSearchQuery!==t.getSearchQuery)+"]");128!==a.maxKeyLength&&b(e,a).call(a,f.DEBUG,"initialize, maxKeyLength set to:["+a.maxKeyLength+"] characters");256!==a.maxValueSize&&b(e,a).call(a,f.DEBUG,"initialize, maxValueSize set to:["+a.maxValueSize+"] characters");100!==a.maxSegmentationValues&&
|
|
40
|
+
b(e,a).call(a,f.DEBUG,"initialize, maxSegmentationValues set to:["+a.maxSegmentationValues+"] key/value pairs");100!==a.maxBreadcrumbCount&&b(e,a).call(a,f.DEBUG,"initialize, maxBreadcrumbCount for custom logs set to:["+a.maxBreadcrumbCount+"] entries");30!==a.maxStackTraceLinesPerThread&&b(e,a).call(a,f.DEBUG,"initialize, maxStackTraceLinesPerThread set to:["+a.maxStackTraceLinesPerThread+"] lines");200!==a.maxStackTraceLineLength&&b(e,a).call(a,f.DEBUG,"initialize, maxStackTraceLineLength set to:["+
|
|
41
|
+
a.maxStackTraceLineLength+"] characters");500!==b(Oa,a)&&b(e,a).call(a,f.DEBUG,"initialize, interval for heartbeats set to:["+b(Oa,a)+"] milliseconds");1E3!==b(Pa,a)&&b(e,a).call(a,f.DEBUG,"initialize, queue_size set to:["+b(Pa,a)+"] items max");60!==b(Qa,a)&&b(e,a).call(a,f.DEBUG,"initialize, fail_timeout set to:["+b(Qa,a)+"] seconds of wait time after a failed connection to server");20!==b(za,a)&&b(e,a).call(a,f.DEBUG,"initialize, inactivity_time set to:["+b(za,a)+"] minutes to consider a user as inactive after no observable action");
|
|
42
|
+
60!==b(Ra,a)&&b(e,a).call(a,f.DEBUG,"initialize, session_update set to:["+b(Ra,a)+"] seconds to check if extending a session is needed while the user is active");100!==b(Aa,a)&&b(e,a).call(a,f.DEBUG,"initialize, max_events set to:["+b(Aa,a)+"] events to send in one batch");b(sa,a)&&b(e,a).call(a,f.WARNING,"initialize, max_logs set to:["+b(sa,a)+"] breadcrumbs to store for crash logs max, deprecated ");30!==b(Ba,a)&&b(e,a).call(a,f.DEBUG,"initialize, session_cookie_timeout set to:["+b(Ba,a)+"] minutes to expire a cookies session");
|
|
43
|
+
var g=null,h=a.getSearchQuery(),n=!1,k={};if(h){0===h.indexOf("?")&&(h=h.substring(1));h=h.split("&");for(var r=0;r<h.length;r++){var u=h[r].split("=");"cly_id"===u[0]?b(z,a).call(a,"cly_cmp_id",u[1]):"cly_uid"===u[0]?b(z,a).call(a,"cly_cmp_uid",u[1]):"cly_device_id"===u[0]?g=u[1]:0===(u[0]+"").indexOf("utm_")&&a.utm[u[0].replace("utm_","")]&&(k[u[0].replace("utm_","")]=u[1],n=!0)}}h=x("device_id",c,void 0);"number"===typeof h&&(h=h.toString());b(B,a).call(a,"cly_id")&&!d?(a.device_id=b(B,a).call(a,
|
|
44
|
+
"cly_id"),b(e,a).call(a,f.INFO,"initialize, Set the stored device ID"),l(H,a,b(B,a).call(a,"cly_id_type")),b(H,a)||(b(e,a).call(a,f.INFO,"initialize, No device ID type info from the previous session, falling back to DEVELOPER_SUPPLIED"),l(H,a,0)),l(M,a,!1)):null!==g?(b(e,a).call(a,f.INFO,"initialize, Device ID set by URL"),a.device_id=g,l(H,a,3),l(M,a,!1)):h?(b(e,a).call(a,f.INFO,"initialize, Device ID set by developer"),a.device_id=h,c&&Object.keys(c).length?void 0!==c.device_id&&l(H,a,0):void 0!==
|
|
45
|
+
t.device_id&&l(H,a,0),l(M,a,!1)):b(M,a)||d?(a.device_id="[CLY]_temp_id",l(H,a,2),b(M,a)&&d?b(e,a).call(a,f.INFO,"initialize, Temp ID set, continuing offline mode from previous app session"):b(M,a)&&!d?b(e,a).call(a,f.INFO,"initialize, Temp ID set, entering offline mode"):(l(M,a,!0),b(e,a).call(a,f.INFO,"initialize, Temp ID set, enabling offline mode"))):(b(e,a).call(a,f.INFO,"initialize, Generating the device ID"),a.device_id=x("device_id",c,b(vb,a).call(a)),c&&Object.keys(c).length?void 0!==c.device_id&&
|
|
46
|
+
l(H,a,0):void 0!==t.device_id&&l(H,a,0));b(z,a).call(a,"cly_id",a.device_id);b(z,a).call(a,"cly_id_type",b(H,a));if(n){l(ia,a,{});for(var y in a.utm)k[y]?(a.userData.set("utm_"+y,k[y]),b(ia,a)[y]=k[y]):a.userData.unset("utm_"+y);a.userData.save()}b(Sb,a).call(a);setTimeout(function(){t.noHeartBeat?b(e,a).call(a,f.WARNING,"initialize, Heartbeat disabled. This is for testing purposes only!"):b(hb,a).call(a);a.remote_config&&a.fetch_remote_config(a.remote_config)},1);A&&document.documentElement.setAttribute("data-countly-useragent",
|
|
47
|
+
La());b(qa,a).sendInstantHCRequest();b(e,a).call(a,f.INFO,"initialize, Countly initialized")}});q(this,Lb,function(){b($a,a)&&(clearTimeout(b($a,a)),l($a,a,null));l($a,a,setTimeout(function(){for(var c={},d=0;d<t.features.length;d++)!0===b(I,a)[t.features[d]].optin?c[t.features[d]]=!0:c[t.features[d]]=!1;b(Q,a).call(a,{consent:JSON.stringify(c)});b(e,a).call(a,f.DEBUG,"Consent update request has been sent to the queue.")},1E3))});w(this,"halt",function(){b(e,a).call(a,f.WARNING,"halt, Resetting Countly");
|
|
48
|
+
t.i=void 0;t.q=[];t.noHeartBeat=void 0;l(Ma,a,!t.i);l(X,a,!1);l(ab,a,"/i");l(Na,a,"/o/sdk");l(Oa,a,500);l(Pa,a,1E3);l(L,a,[]);l(N,a,[]);l(P,a,{});l(la,a,[]);l(aa,a,{});l(ba,a,[]);l(bb,a,null);l(wa,a,!0);l(cb,a,0);l(S,a,null);l(xa,a,0);l(ya,a,0);l(db,a,0);l(Qa,a,60);l(za,a,20);l(ra,a,0);l(Ra,a,60);l(Aa,a,100);l(sa,a,null);l(ha,a,!0);l(Ba,a,30);l(Sa,a,!0);l(Ta,a,!1);l(M,a,!1);l(ca,a,{});l(ma,a,!0);l(nb,a,K());l(na,a,!0);l(ta,a,null);l(H,a,1);l(Ca,a,!1);l(Da,a,0);l(eb,a,!1);l(oa,a,null);l(Ua,a,null);
|
|
49
|
+
l(ia,a,null);l(gb,a,[]);try{localStorage.setItem("cly_testLocal",!0),localStorage.removeItem("cly_testLocal")}catch(d){b(e,a).call(a,f.ERROR,"halt, Local storage test failed, will fallback to cookies"),l(na,a,!1)}t.features="sessions events views scrolls clicks forms crashes attribution users star-rating location apm feedback remote-config".split(" ");l(I,a,{});for(var c=0;c<t.features.length;c++)b(I,a)[t.features[c]]={};a.app_key=void 0;a.device_id=void 0;a.onload=void 0;a.utm=void 0;a.ignore_prefetch=
|
|
50
|
+
void 0;a.debug=void 0;a.test_mode=void 0;a.test_mode_eq=void 0;a.metrics=void 0;a.headers=void 0;a.url=void 0;a.app_version=void 0;a.country_code=void 0;a.city=void 0;a.ip_address=void 0;a.ignore_bots=void 0;a.force_post=void 0;a.rcAutoOptinAb=void 0;a.useExplicitRcApi=void 0;a.remote_config=void 0;a.ignore_visitor=void 0;a.require_consent=void 0;a.track_domains=void 0;a.storage=void 0;a.enableOrientationTracking=void 0;a.salt=void 0;a.maxKeyLength=void 0;a.maxValueSize=void 0;a.maxSegmentationValues=
|
|
51
|
+
void 0;a.maxBreadcrumbCount=void 0;a.maxStackTraceLinesPerThread=void 0;a.maxStackTraceLineLength=void 0});w(this,"group_features",function(c){b(e,a).call(a,f.INFO,"group_features, Grouping features");if(c)for(var d in c)b(I,a)[d]?b(e,a).call(a,f.WARNING,"group_features, Feature name ["+d+"] is already reserved"):"string"===typeof c[d]?b(I,a)[d]={features:[c[d]]}:c[d]&&Array.isArray(c[d])&&c[d].length?b(I,a)[d]={features:c[d]}:b(e,a).call(a,f.ERROR,"group_features, Incorrect feature list for ["+d+
|
|
52
|
+
"] value: ["+c[d]+"]");else b(e,a).call(a,f.ERROR,"group_features, Incorrect features:["+c+"]")});w(this,"check_consent",function(c){b(e,a).call(a,f.INFO,"check_consent, Checking if consent is given for specific feature:["+c+"]");if(!a.require_consent)return b(e,a).call(a,f.INFO,"check_consent, require_consent is off, no consent is necessary"),!0;if(b(I,a)[c])return!(!b(I,a)[c]||!b(I,a)[c].optin);b(e,a).call(a,f.ERROR,"check_consent, No feature available for ["+c+"]");return!1});w(this,"get_device_id_type",
|
|
53
|
+
function(){b(e,a).call(a,f.INFO,"check_device_id_type, Retrieving the current device id type.["+b(H,a)+"]");switch(b(H,a)){case 1:var c=a.DeviceIdType.SDK_GENERATED;break;case 3:case 0:c=a.DeviceIdType.DEVELOPER_SUPPLIED;break;case 2:c=a.DeviceIdType.TEMPORARY_ID;break;default:c=-1}return c});w(this,"get_device_id",function(){b(e,a).call(a,f.INFO,"get_device_id, Retrieving the device id: ["+a.device_id+"]");return a.device_id});w(this,"check_any_consent",function(){b(e,a).call(a,f.INFO,"check_any_consent, Checking if any consent is given");
|
|
54
|
+
if(!a.require_consent)return b(e,a).call(a,f.INFO,"check_any_consent, require_consent is off, no consent is necessary"),!0;for(var c in b(I,a))if(b(I,a)[c]&&b(I,a)[c].optin)return!0;b(e,a).call(a,f.INFO,"check_any_consent, No consents given");return!1});w(this,"add_consent",function(c){b(e,a).call(a,f.INFO,"add_consent, Adding consent for ["+c+"]");if(Array.isArray(c))for(var d=0;d<c.length;d++)a.add_consent(c[d]);else b(I,a)[c]?b(I,a)[c].features?(b(I,a)[c].optin=!0,a.add_consent(b(I,a)[c].features)):
|
|
55
|
+
!0!==b(I,a)[c].optin&&(b(I,a)[c].optin=!0,b(Lb,a).call(a),setTimeout(function(){"sessions"===c&&b(ca,a).begin_session?(a.begin_session.apply(a,b(ca,a).begin_session),b(ca,a).begin_session=null):"views"===c&&b(ca,a).track_pageview&&(l(S,a,null),a.track_pageview.apply(a,b(ca,a).track_pageview),b(ca,a).track_pageview=null)},1)):b(e,a).call(a,f.ERROR,"add_consent, No feature available for ["+c+"]")});w(this,"remove_consent",function(c){b(e,a).call(a,f.INFO,"remove_consent, Removing consent for ["+c+"]");
|
|
56
|
+
a.remove_consent_internal(c,!0)});w(this,"remove_consent_internal",function(c,d){d=d||!1;if(Array.isArray(c))for(var g=0;g<c.length;g++)a.remove_consent_internal(c[g],d);else b(I,a)[c]?b(I,a)[c].features?a.remove_consent_internal(b(I,a)[c].features,d):(b(I,a)[c].optin=!1,d&&!1!==b(I,a)[c].optin&&b(Lb,a).call(a)):b(e,a).call(a,f.WARNING,"remove_consent, No feature available for ["+c+"]")});w(this,"enable_offline_mode",function(){b(e,a).call(a,f.INFO,"enable_offline_mode, Enabling offline mode");a.remove_consent_internal(t.features,
|
|
57
|
+
!1);l(M,a,!0);a.device_id="[CLY]_temp_id";a.device_id=a.device_id;l(H,a,2)});w(this,"disable_offline_mode",function(c){if(b(M,a)){b(e,a).call(a,f.INFO,"disable_offline_mode, Disabling offline mode");l(M,a,!1);c&&a.device_id!==c?(a.device_id=c,a.device_id=a.device_id,l(H,a,0),b(z,a).call(a,"cly_id",a.device_id),b(z,a).call(a,"cly_id_type",0),b(e,a).call(a,f.INFO,"disable_offline_mode, Changing id to: "+a.device_id)):(a.device_id=b(vb,a).call(a),"[CLY]_temp_id"===a.device_id&&(a.device_id=Db()),a.device_id=
|
|
58
|
+
a.device_id,a.device_id!==b(B,a).call(a,"cly_id")&&(b(z,a).call(a,"cly_id",a.device_id),b(z,a).call(a,"cly_id_type",1)));c=!1;if(0<b(L,a).length)for(var d=0;d<b(L,a).length;d++)"[CLY]_temp_id"===b(L,a)[d].device_id&&(b(L,a)[d].device_id=a.device_id,c=!0);c&&b(z,a).call(a,"cly_queue",b(L,a),!0);b(fb,a)&&(b(qa,a).sendInstantHCRequest(),l(fb,a,!1))}else b(e,a).call(a,f.WARNING,"disable_offline_mode, Countly was not in offline mode.")});w(this,"begin_session",function(c,d){b(e,a).call(a,f.INFO,"begin_session, Starting the session. There was an ongoing session: ["+
|
|
59
|
+
b(X,a)+"]");c&&b(e,a).call(a,f.INFO,"begin_session, Heartbeats are disabled");d&&b(e,a).call(a,f.INFO,"begin_session, Session starts irrespective of session cookie");if(a.check_consent("sessions")){if(!b(X,a)){a.enableOrientationTracking&&(b(Mb,a).call(a),D(window,"resize",function(){b(Mb,a).call(a)}));l(fa,a,K());l(X,a,!0);l(wa,a,!c);c=b(B,a).call(a,"cly_session");b(e,a).call(a,f.VERBOSE,"begin_session, Session state, forced: ["+d+"], useSessionCookie: ["+b(ha,a)+"], seconds to expire: ["+(c-b(fa,
|
|
60
|
+
a))+"], expired: ["+(parseInt(c)<=K())+"] ");if(d||!b(ha,a)||!c||parseInt(c)<=K())b(e,a).call(a,f.INFO,"begin_session, Session started"),null===b(ta,a)&&l(ta,a,!0),d={begin_session:1},d.metrics=JSON.stringify(b(ib,a).call(a)),b(Q,a).call(a,d);b(z,a).call(a,"cly_session",K()+60*b(Ba,a))}}else b(ca,a).begin_session=[c,d]});w(this,"session_duration",function(c){b(e,a).call(a,f.INFO,"session_duration, Reporting session duration: ["+c+"]");a.check_consent("sessions")&&(b(X,a)?(b(e,a).call(a,f.INFO,"session_duration, Session extended: ["+
|
|
61
|
+
c+"]"),b(Q,a).call(a,{session_duration:c}),b(Tb,a).call(a)):b(e,a).call(a,f.DEBUG,"session_duration, No session was started"))});w(this,"end_session",function(c,d){b(e,a).call(a,f.INFO,"end_session, Ending the current session. There was an on going session:["+b(X,a)+"]");a.check_consent("sessions")&&b(X,a)&&(c=c||K()-b(fa,a),b(ub,a).call(a),!b(ha,a)||d?(b(e,a).call(a,f.INFO,"end_session, Session ended"),b(Q,a).call(a,{end_session:1,session_duration:c})):a.session_duration(c),l(X,a,!1))});w(this,"set_id",
|
|
62
|
+
function(c){b(e,a).call(a,f.INFO,"set_id, Changing the device ID to:["+c+"]");null==c||""===c?b(e,a).call(a,f.WARNING,"set_id, The provided device is not a valid ID"):0===b(H,a)?a.change_id(c,!1):a.change_id(c,!0)});w(this,"change_id",function(c,d){b(e,a).call(a,f.INFO,"change_id, Changing the device ID to: ["+c+"] with merge:["+d+"]");if(c&&"string"===typeof c&&0!==c.length)if(b(M,a))b(e,a).call(a,f.WARNING,"change_id, Offline mode was on, initiating disabling sequence instead."),a.disable_offline_mode(c);
|
|
63
|
+
else if(a.device_id==c)b(e,a).call(a,f.DEBUG,"change_id, Provided device ID is equal to the current device ID. Aborting.");else{d||(b(Ha,a).call(a),b(Fa,a).call(a),a.end_session(null,!0),l(aa,a,{}),a.remove_consent_internal(t.features,!1));var g=a.device_id;a.device_id=c;a.device_id=a.device_id;l(H,a,0);b(z,a).call(a,"cly_id",a.device_id);b(z,a).call(a,"cly_id_type",0);b(e,a).call(a,f.INFO,"change_id, Changing ID from:["+g+"] to ["+c+"]");d?b(Q,a).call(a,{old_device_id:g}):a.begin_session(!b(wa,a),
|
|
64
|
+
!0);a.remote_config&&(l(P,a,{}),b(z,a).call(a,"cly_remote_configs",b(P,a)),a.fetch_remote_config(a.remote_config))}else b(e,a).call(a,f.WARNING,"change_id, The provided device ID is not a valid ID")});w(this,"add_event",function(c){b(e,a).call(a,f.INFO,"add_event, Adding event: ",c);switch(c.key){case O.NPS:var d=a.check_consent("feedback");break;case O.SURVEY:d=a.check_consent("feedback");break;case O.STAR_RATING:d=a.check_consent("star-rating");break;case O.VIEW:d=a.check_consent("views");break;
|
|
65
|
+
case O.ORIENTATION:d=a.check_consent("users");break;case O.ACTION:d=a.check_consent("clicks")||a.check_consent("scrolls");break;default:d=a.check_consent("events")}d&&b(Y,a).call(a,c)});q(this,Y,function(c,d){if(a.ignore_visitor)b(e,a).call(a,f.ERROR,"Adding event failed. Possible bot or user opt out");else if(c.key){c.count||(c.count=1);Hc.includes(c.key)||(c.key=C(c.key,a.maxKeyLength,"add_cly_event",b(e,a)));c.segmentation=ka(c.segmentation,a.maxKeyLength,a.maxValueSize,a.maxSegmentationValues,
|
|
66
|
+
"add_cly_event",b(e,a));c=Ya(c,["key","count","sum","dur","segmentation"]);c.timestamp=Eb();var g=new Date;c.hour=g.getHours();c.dow=g.getDay();c.id=d||Cb();c.key===O.VIEW?c.pvid=b(Ua,a)||"":c.cvid=b(oa,a)||"";b(N,a).push(c);b(z,a).call(a,"cly_event",b(N,a));b(e,a).call(a,f.INFO,"With event ID: ["+c.id+"], successfully adding the last event:",c)}else b(e,a).call(a,f.ERROR,"Adding event failed. Event must have a key property")});w(this,"start_event",function(c){c&&"string"===typeof c?(b(e,a).call(a,
|
|
67
|
+
f.INFO,"start_event, Starting timed event with key: ["+c+"]"),c=C(c,a.maxKeyLength,"start_event",b(e,a)),b(aa,a)[c]?b(e,a).call(a,f.WARNING,"start_event, Timed event with key: ["+c+"] already started"):b(aa,a)[c]=K()):b(e,a).call(a,f.WARNING,"start_event, you have to provide a valid string key instead of: ["+c+"]")});w(this,"cancel_event",function(c){if(!c||"string"!==typeof c)return b(e,a).call(a,f.WARNING,"cancel_event, you have to provide a valid string key instead of: ["+c+"]"),!1;b(e,a).call(a,
|
|
68
|
+
f.INFO,"cancel_event, Canceling timed event with key: ["+c+"]");c=C(c,a.maxKeyLength,"cancel_event",b(e,a));if(b(aa,a)[c])return delete b(aa,a)[c],b(e,a).call(a,f.INFO,"cancel_event, Timed event with key: ["+c+"] is canceled"),!0;b(e,a).call(a,f.WARNING,"cancel_event, Timed event with key: ["+c+"] was not found");return!1});w(this,"end_event",function(c){c?(b(e,a).call(a,f.INFO,"end_event, Ending timed event"),"string"===typeof c&&(c=C(c,a.maxKeyLength,"end_event",b(e,a)),c={key:c}),c.key?b(aa,a)[c.key]?
|
|
69
|
+
(c.dur=K()-b(aa,a)[c.key],a.add_event(c),delete b(aa,a)[c.key]):b(e,a).call(a,f.ERROR,"end_event, Timed event with key: ["+c.key+"] was not started"):b(e,a).call(a,f.ERROR,"end_event, Timed event must have a key property")):b(e,a).call(a,f.WARNING,"end_event, you have to provide a valid string key or event object instead of: ["+c+"]")});q(this,Mb,function(c){b(e,a).call(a,f.INFO,"report_orientation, Reporting orientation");a.check_consent("users")&&b(Y,a).call(a,{key:O.ORIENTATION,segmentation:{mode:c||
|
|
70
|
+
(window.innerWidth>window.innerHeight?"landscape":"portrait")}})});w(this,"report_conversion",function(c,d){b(e,a).call(a,f.WARNING,"report_conversion, Deprecated function call! Use 'recordDirectAttribution' in place of this call. Call will be redirected now!");a.recordDirectAttribution(c,d)});w(this,"recordDirectAttribution",function(c,d){b(e,a).call(a,f.INFO,"recordDirectAttribution, Recording the attribution for campaign ID: ["+c+"] and the user ID: ["+d+"]");a.check_consent("attribution")&&(c=
|
|
71
|
+
c||b(B,a).call(a,"cly_cmp_id")||"cly_organic",(d=d||b(B,a).call(a,"cly_cmp_uid"))?b(Q,a).call(a,{campaign_id:c,campaign_user:d}):b(Q,a).call(a,{campaign_id:c}))});w(this,"user_details",function(c){b(e,a).call(a,f.INFO,"user_details, Trying to add user details: ",c);a.check_consent("users")&&(b(Ha,a).call(a),b(Fa,a).call(a),b(e,a).call(a,f.INFO,"user_details, flushed the event queue"),c.name=C(c.name,a.maxValueSize,"user_details",b(e,a)),c.username=C(c.username,a.maxValueSize,"user_details",b(e,a)),
|
|
72
|
+
c.email=C(c.email,a.maxValueSize,"user_details",b(e,a)),c.organization=C(c.organization,a.maxValueSize,"user_details",b(e,a)),c.phone=C(c.phone,a.maxValueSize,"user_details",b(e,a)),c.picture=C(c.picture,4096,"user_details",b(e,a)),c.gender=C(c.gender,a.maxValueSize,"user_details",b(e,a)),c.byear=C(c.byear,a.maxValueSize,"user_details",b(e,a)),c.custom=ka(c.custom,a.maxKeyLength,a.maxValueSize,a.maxSegmentationValues,"user_details",b(e,a)),b(Q,a).call(a,{user_details:JSON.stringify(Ya(c,"name username email organization phone picture gender byear custom".split(" ")))}))});
|
|
73
|
+
q(this,da,{});q(this,ja,function(c,d,g){a.check_consent("users")&&(b(da,a)[c]||(b(da,a)[c]={}),"$push"===g||"$pull"===g||"$addToSet"===g?(b(da,a)[c][g]||(b(da,a)[c][g]=[]),b(da,a)[c][g].push(d)):b(da,a)[c][g]=d)});w(this,"userData",{set:function(c,d){b(e,a).call(a,f.INFO,"[userData] set, Setting user's custom property value: ["+d+"] under the key: ["+c+"]");c=C(c,a.maxKeyLength,"userData set",b(e,a));d=C(d,a.maxValueSize,"userData set",b(e,a));b(da,a)[c]=d},unset:function(c){b(e,a).call(a,f.INFO,
|
|
74
|
+
"[userData] unset, Resetting user's custom property with key: ["+c+"] ");b(da,a)[c]=""},set_once:function(c,d){b(e,a).call(a,f.INFO,"[userData] set_once, Setting user's unique custom property value: ["+d+"] under the key: ["+c+"] ");c=C(c,a.maxKeyLength,"userData set_once",b(e,a));d=C(d,a.maxValueSize,"userData set_once",b(e,a));b(ja,a).call(a,c,d,"$setOnce")},increment:function(c){b(e,a).call(a,f.INFO,"[userData] increment, Increasing user's custom property value under the key: ["+c+"] by one");
|
|
75
|
+
c=C(c,a.maxKeyLength,"userData increment",b(e,a));b(ja,a).call(a,c,1,"$inc")},increment_by:function(c,d){b(e,a).call(a,f.INFO,"[userData] increment_by, Increasing user's custom property value under the key: ["+c+"] by: ["+d+"]");c=C(c,a.maxKeyLength,"userData increment_by",b(e,a));d=C(d,a.maxValueSize,"userData increment_by",b(e,a));b(ja,a).call(a,c,d,"$inc")},multiply:function(c,d){b(e,a).call(a,f.INFO,"[userData] multiply, Multiplying user's custom property value under the key: ["+c+"] by: ["+d+
|
|
76
|
+
"]");c=C(c,a.maxKeyLength,"userData multiply",b(e,a));d=C(d,a.maxValueSize,"userData multiply",b(e,a));b(ja,a).call(a,c,d,"$mul")},max:function(c,d){b(e,a).call(a,f.INFO,"[userData] max, Saving user's maximum custom property value compared to the value: ["+d+"] under the key: ["+c+"]");c=C(c,a.maxKeyLength,"userData max",b(e,a));d=C(d,a.maxValueSize,"userData max",b(e,a));b(ja,a).call(a,c,d,"$max")},min:function(c,d){b(e,a).call(a,f.INFO,"[userData] min, Saving user's minimum custom property value compared to the value: ["+
|
|
77
|
+
d+"] under the key: ["+c+"]");c=C(c,a.maxKeyLength,"userData min",b(e,a));d=C(d,a.maxValueSize,"userData min",b(e,a));b(ja,a).call(a,c,d,"$min")},push:function(c,d){b(e,a).call(a,f.INFO,"[userData] push, Pushing a value: ["+d+"] under the key: ["+c+"] to user's custom property array");c=C(c,a.maxKeyLength,"userData push",b(e,a));d=C(d,a.maxValueSize,"userData push",b(e,a));b(ja,a).call(a,c,d,"$push")},push_unique:function(c,d){b(e,a).call(a,f.INFO,"[userData] push_unique, Pushing a unique value: ["+
|
|
78
|
+
d+"] under the key: ["+c+"] to user's custom property array");c=C(c,a.maxKeyLength,"userData push_unique",b(e,a));d=C(d,a.maxValueSize,"userData push_unique",b(e,a));b(ja,a).call(a,c,d,"$addToSet")},pull:function(c,d){b(e,a).call(a,f.INFO,"[userData] pull, Removing the value: ["+d+"] under the key: ["+c+"] from user's custom property array");b(ja,a).call(a,c,d,"$pull")},save:function(){b(e,a).call(a,f.INFO,"[userData] save, Saving changes to user's custom property");a.check_consent("users")&&(b(Ha,
|
|
79
|
+
a).call(a),b(Fa,a).call(a),b(e,a).call(a,f.INFO,"user_details, flushed the event queue"),b(Q,a).call(a,{user_details:JSON.stringify({custom:b(da,a)})}));l(da,a,{})}});w(this,"report_trace",function(c){b(e,a).call(a,f.INFO,"report_trace, Reporting performance trace");if(a.check_consent("apm")){for(var d="type name stz etz apm_metrics apm_attr".split(" "),g=0;g<d.length;g++)if("apm_attr"!==d[g]&&"undefined"===typeof c[d[g]]){b(e,a).call(a,f.WARNING,"report_trace, APM trace don't have the property: "+
|
|
80
|
+
d[g]);return}c.name=C(c.name,a.maxKeyLength,"report_trace",b(e,a));c.app_metrics=ka(c.app_metrics,a.maxKeyLength,a.maxValueSize,a.maxSegmentationValues,"report_trace",b(e,a));d=Ya(c,d);d.timestamp=c.stz;c=new Date;d.hour=c.getHours();d.dow=c.getDay();b(Q,a).call(a,{apm:JSON.stringify(d)});b(e,a).call(a,f.INFO,"report_trace, Successfully adding APM trace: ",d)}});w(this,"track_errors",function(c){A?(b(e,a).call(a,f.INFO,"track_errors, Started tracking errors"),t.i[a.app_key].tracking_crashes=!0,window.cly_crashes||
|
|
81
|
+
(window.cly_crashes=!0,l(bb,a,c),window.onerror=function u(g,h,n,k,r){if(void 0!==r&&null!==r)Fb(r,!1);else{k=k||window.event&&window.event.errorCharacter;r="";"undefined"!==typeof g&&(r+=g+"\n");"undefined"!==typeof h&&(r+="at "+h);"undefined"!==typeof n&&(r+=":"+n);"undefined"!==typeof k&&(r+=":"+k);r+="\n";try{g=[];for(var y=u.caller;y;)g.push(y.name),y=y.caller;r+=g.join("\n")}catch(G){}Fb(r,!1)}},window.addEventListener("unhandledrejection",function(g){Fb(Error("Unhandled rejection (reason: "+
|
|
82
|
+
(g.reason&&g.reason.stack?g.reason.stack:g.reason)+")."),!0)}))):b(e,a).call(a,f.WARNING,"track_errors, window object is not available. Not tracking errors.")});w(this,"log_error",function(c,d){b(e,a).call(a,f.INFO,"log_error, Logging errors");a.recordError(c,!0,d)});w(this,"add_log",function(c){b(e,a).call(a,f.INFO,"add_log, Adding a new log of breadcrumbs: [ "+c+" ]");if(a.check_consent("crashes")){for(c=C(c,a.maxValueSize,"add_log",b(e,a));b(la,a).length>=a.maxBreadcrumbCount;)b(la,a).shift(),
|
|
83
|
+
b(e,a).call(a,f.WARNING,"add_log, Reached maximum crashLogs size. Will erase the oldest one.");b(la,a).push(c)}});w(this,"fetch_remote_config",function(c,d,g){var h=null,n=null,k=null;c&&(g||"function"!==typeof c?Array.isArray(c)&&(h=c):k=c);d&&(g||"function"!==typeof d?Array.isArray(d)&&(n=d):k=d);k||"function"!==typeof g||(k=g);a.useExplicitRcApi?(b(e,a).call(a,f.INFO,"fetch_remote_config, Fetching remote config"),c=a.rcAutoOptinAb?1:0,b(Nb,a).call(a,h,n,c,null,k)):(b(e,a).call(a,f.WARNING,"fetch_remote_config, Fetching remote config, with legacy API"),
|
|
84
|
+
b(Nb,a).call(a,h,n,null,"legacy",k))});q(this,Nb,function(c,d,g,h,n){b(e,a).call(a,f.INFO,"fetch_remote_config_explicit, Fetching sequence initiated");var k={method:"rc",av:a.app_version};c&&(k.keys=JSON.stringify(c));d&&(k.omit_keys=JSON.stringify(d));var r;"legacy"===h&&(k.method="fetch_remote_config");0===g&&(k.oi=0);1===g&&(k.oi=1);"function"===typeof n&&(r=n);a.check_consent("sessions")&&(k.metrics=JSON.stringify(b(ib,a).call(a)));a.check_consent("remote-config")?(b(Ga,a).call(a,k),b(ea,a).call(a,
|
|
85
|
+
"fetch_remote_config_explicit",a.url+b(Na,a),k,function(u,y,G){if(!u){try{var U=JSON.parse(G);if(k.keys||k.omit_keys)for(var J in U)b(P,a)[J]=U[J];else l(P,a,U);b(z,a).call(a,"cly_remote_configs",b(P,a))}catch(Xa){b(e,a).call(a,f.ERROR,"fetch_remote_config_explicit, Had an issue while parsing the response: "+Xa)}r&&(b(e,a).call(a,f.INFO,"fetch_remote_config_explicit, Callback function is provided"),r(u,b(P,a)))}},!0)):(b(e,a).call(a,f.ERROR,"fetch_remote_config_explicit, Remote config requires explicit consent"),
|
|
86
|
+
r&&r(Error("Remote config requires explicit consent"),b(P,a)))});w(this,"enrollUserToAb",function(c){b(e,a).call(a,f.INFO,"enrollUserToAb, Providing AB test keys to opt in for");c&&Array.isArray(c)&&0!==c.length?(c={method:"ab",keys:JSON.stringify(c),av:a.app_version},b(Ga,a).call(a,c),b(ea,a).call(a,"enrollUserToAb",a.url+b(Na,a),c,function(d,g,h){if(!d)try{var n=JSON.parse(h);b(e,a).call(a,f.DEBUG,"enrollUserToAb, Parsed the response's result: ["+n.result+"]")}catch(k){b(e,a).call(a,f.ERROR,"enrollUserToAb, Had an issue while parsing the response: "+
|
|
87
|
+
k)}},!0)):b(e,a).call(a,f.ERROR,"enrollUserToAb, No keys provided")});w(this,"get_remote_config",function(c){b(e,a).call(a,f.INFO,"get_remote_config, Getting remote config from storage");return"undefined"!==typeof c?b(P,a)[c]:b(P,a)});q(this,Ob,function(){b(e,a).call(a,f.INFO,"stop_time, Stopping tracking duration");b(ma,a)&&(l(ma,a,!1),l(cb,a,K()-b(fa,a)),l(ya,a,K()-b(xa,a)))});q(this,qb,function(){b(e,a).call(a,f.INFO,"start_time, Starting tracking duration");b(ma,a)||(l(ma,a,!0),l(fa,a,K()-b(cb,
|
|
88
|
+
a)),l(xa,a,K()-b(ya,a)),l(ya,a,0),b(Tb,a).call(a))});w(this,"track_sessions",function(){if(A){b(e,a).call(a,f.INFO,"track_session, Starting tracking user session");a.begin_session();b(qb,a).call(a);D(window,"beforeunload",function(){b(Ha,a).call(a);b(Fa,a).call(a);a.end_session()});var c="hidden",d=function(){document[c]||!document.hasFocus()?b(Ob,a).call(a):b(qb,a).call(a)};D(window,"focus",d);D(window,"blur",d);D(window,"pageshow",d);D(window,"pagehide",d);"onfocusin"in document&&(D(window,"focusin",
|
|
89
|
+
d),D(window,"focusout",d));c in document?document.addEventListener("visibilitychange",d):"mozHidden"in document?(c="mozHidden",document.addEventListener("mozvisibilitychange",d)):"webkitHidden"in document?(c="webkitHidden",document.addEventListener("webkitvisibilitychange",d)):"msHidden"in document&&(c="msHidden",document.addEventListener("msvisibilitychange",d));d=function(){b(ra,a)>=b(za,a)&&b(qb,a).call(a);l(ra,a,0)};D(window,"mousemove",d);D(window,"click",d);D(window,"keydown",d);D(window,"scroll",
|
|
90
|
+
d);setInterval(function(){var g;l(ra,a,(g=b(ra,a),g++,g));b(ra,a)>=b(za,a)&&b(Ob,a).call(a)},6E4)}else b(e,a).call(a,f.WARNING,"track_sessions, window object is not available. Not tracking sessions.")});w(this,"track_pageview",function(c,d,g){if(A||c)if(b(e,a).call(a,f.INFO,"track_pageview, Tracking page views"),b(e,a).call(a,f.VERBOSE,"track_pageview, last view is:["+b(S,a)+"], current view ID is:["+b(oa,a)+"], previous view ID is:["+b(Ua,a)+"]"),b(S,a)&&b(eb,a)&&(b(e,a).call(a,f.DEBUG,"track_pageview, Scroll registry triggered"),
|
|
91
|
+
b(Ab,a).call(a),l(Ca,a,!0),l(Da,a,0)),b(ub,a).call(a),l(Ua,a,b(oa,a)),l(oa,a,Cb()),(c=C(c,a.maxKeyLength,"track_pageview",b(e,a)))&&Array.isArray(c)&&(d=c,c=null),c||(c=a.getViewName()),void 0===c||""===c)b(e,a).call(a,f.ERROR,"track_pageview, No page name to track (it is either undefined or empty string). No page view can be tracked.");else if(null===c)b(e,a).call(a,f.ERROR,"track_pageview, View name returned as null. Page view will be ignored.");else{if(d&&d.length)for(var h=0;h<d.length;h++)try{if((new RegExp(d[h])).test(c)){b(e,
|
|
92
|
+
a).call(a,f.INFO,"track_pageview, Ignoring the page: "+c);return}}catch(u){b(e,a).call(a,f.ERROR,"track_pageview, Problem with finding ignore list item: "+d[h]+", error: "+u)}h={name:c,visit:1,view:a.getViewUrl()};h=ka(h,a.maxKeyLength,a.maxValueSize,a.maxSegmentationValues,"track_pageview",b(e,a));a.track_domains&&(h.domain=window.location.hostname);if(b(ha,a))if(b(X,a))b(ta,a)&&(l(ta,a,!1),h.start=1);else{var n=b(B,a).call(a,"cly_session");if(!n||parseInt(n)<=K())l(ta,a,!1),h.start=1}else A&&"undefined"!==
|
|
93
|
+
typeof document.referrer&&document.referrer.length&&(n=lc.exec(document.referrer))&&n[11]&&n[11]!==window.location.hostname&&(h.start=1);if(b(ia,a)&&Object.keys(b(ia,a)).length){b(e,a).call(a,f.INFO,"track_pageview, Adding fresh utm tags to segmentation:["+JSON.stringify(b(ia,a))+"]");for(var k in b(ia,a))"undefined"===typeof h["utm_"+k]&&(h["utm_"+k]=b(ia,a)[k])}A&&b(xb,a).call(a)&&(b(e,a).call(a,f.INFO,"track_pageview, Adding referrer to segmentation:["+document.referrer+"]"),h.referrer=document.referrer);
|
|
94
|
+
if(g){g=ka(g,a.maxKeyLength,a.maxValueSize,a.maxSegmentationValues,"track_pageview",b(e,a));for(var r in g)"undefined"===typeof h[r]&&(h[r]=g[r])}a.check_consent("views")?(b(Y,a).call(a,{key:O.VIEW,segmentation:h},b(oa,a)),l(S,a,c),l(xa,a,K()),b(e,a).call(a,f.VERBOSE,"track_pageview, last view is assigned:["+b(S,a)+"]")):b(ca,a).track_pageview=[c,d,g]}else b(e,a).call(a,f.WARNING,"track_pageview, window object is not available. Not tracking page views is page is not provided.")});w(this,"track_view",
|
|
95
|
+
function(c,d,g){b(e,a).call(a,f.INFO,"track_view, Initiating tracking page views");a.track_pageview(c,d,g)});w(this,"track_clicks",function(c){if(A){b(e,a).call(a,f.INFO,"track_clicks, Starting to track clicks");c&&b(e,a).call(a,f.INFO,"track_clicks, Tracking the specified children:["+c+"]");c=c||document;var d=!0;D(c,"click",function(g){if(d){d=!1;Ib(g);if("undefined"!==typeof g.pageX&&"undefined"!==typeof g.pageY){var h=lb(),n=Jb();a.check_consent("clicks")&&(g={type:"click",x:g.pageX,y:g.pageY,
|
|
96
|
+
width:n,height:h,view:a.getViewUrl()},g=ka(g,a.maxKeyLength,a.maxValueSize,a.maxSegmentationValues,"processClick",b(e,a)),a.track_domains&&(g.domain=window.location.hostname),b(Y,a).call(a,{key:O.ACTION,segmentation:g}))}setTimeout(function(){d=!0},1E3)}})}else b(e,a).call(a,f.WARNING,"track_clicks, window object is not available. Not tracking clicks.")});w(this,"track_scrolls",function(c){A?(b(e,a).call(a,f.INFO,"track_scrolls, Starting to track scrolls"),c&&b(e,a).call(a,f.INFO,"track_scrolls, Tracking the specified children"),
|
|
97
|
+
c=c||window,l(Ca,a,!0),l(eb,a,!0),D(c,"scroll",b(Xb,a)),D(c,"beforeunload",b(Ab,a))):b(e,a).call(a,f.WARNING,"track_scrolls, window object is not available. Not tracking scrolls.")});w(this,"track_links",function(c){A?(b(e,a).call(a,f.INFO,"track_links, Starting to track clicks to links"),c&&b(e,a).call(a,f.INFO,"track_links, Tracking the specified children"),c=c||document,D(c,"click",function(d){a:{var g=kb(d);var h;for(h="A";g;){if(g.nodeName.toUpperCase()===h)break a;g=g.parentElement}g=void 0}g&&
|
|
98
|
+
(Ib(d),a.check_consent("clicks")&&b(Y,a).call(a,{key:"linkClick",segmentation:{href:g.href,text:g.innerText,id:g.id,view:a.getViewUrl()}}))})):b(e,a).call(a,f.WARNING,"track_links, window object is not available. Not tracking links.")});w(this,"track_forms",function(c,d){if(A){b(e,a).call(a,f.INFO,"track_forms, Starting to track form submissions. DOM object provided:["+!!c+"] Tracking hidden inputs :["+!!d+"]");c=c||document;var g=function(h){return h.name||h.id||h.type||h.nodeName};D(c,"submit",
|
|
99
|
+
function(h){h=kb(h);var n={id:h.attributes.id&&h.attributes.id.nodeValue,name:h.attributes.name&&h.attributes.name.nodeValue,action:h.attributes.action&&h.attributes.action.nodeValue,method:h.attributes.method&&h.attributes.method.nodeValue,view:a.getViewUrl()},k;if("undefined"!==typeof h.elements){for(var r=0;r<h.elements.length;r++)(k=h.elements[r])&&"password"!==k.type&&-1===k.className.indexOf("cly_user_ignore")&&("undefined"===typeof n["input:"+g(k)]&&(n["input:"+g(k)]=[]),"select"===k.nodeName.toLowerCase()?
|
|
100
|
+
"undefined"!==typeof k.multiple?n["input:"+g(k)].push(ac(k)):n["input:"+g(k)].push(k.options[k.selectedIndex].value):"input"===k.nodeName.toLowerCase()?"undefined"!==typeof k.type?"checkbox"===k.type.toLowerCase()||"radio"===k.type.toLowerCase()?k.checked&&n["input:"+g(k)].push(k.value):("hidden"!==k.type.toLowerCase()||d)&&n["input:"+g(k)].push(k.value):n["input:"+g(k)].push(k.value):"textarea"===k.nodeName.toLowerCase()?n["input:"+g(k)].push(k.value):"undefined"!==typeof k.value&&n["input:"+g(k)].push(k.value));
|
|
101
|
+
for(var u in n)n[u]&&"function"===typeof n[u].join&&(n[u]=n[u].join(", "))}a.check_consent("forms")&&b(Y,a).call(a,{key:"formSubmit",segmentation:n})})}else b(e,a).call(a,f.WARNING,"track_forms, window object is not available. Not tracking forms.")});w(this,"collect_from_forms",function(c,d){A?(b(e,a).call(a,f.INFO,"collect_from_forms, Starting to collect possible user data. DOM object provided:["+!!c+"] Submitting custom user property:["+!!d+"]"),c=c||document,D(c,"submit",function(g){g=kb(g);var h=
|
|
102
|
+
{},n=!1,k;if("undefined"!==typeof g.elements){var r={},u=c.getElementsByTagName("LABEL"),y;for(y=0;y<u.length;y++)u[y].htmlFor&&""!==u[y].htmlFor&&(r[u[y].htmlFor]=u[y].innerText||u[y].textContent||u[y].innerHTML);for(y=0;y<g.elements.length;y++)if((k=g.elements[y])&&"password"!==k.type&&-1===k.className.indexOf("cly_user_ignore"))if(u="","select"===k.nodeName.toLowerCase()?u="undefined"!==typeof k.multiple?ac(k):k.options[k.selectedIndex].value:"input"===k.nodeName.toLowerCase()?"undefined"!==typeof k.type?
|
|
103
|
+
"checkbox"===k.type.toLowerCase()||"radio"===k.type.toLowerCase()?k.checked&&(u=k.value):u=k.value:u=k.value:"textarea"===k.nodeName.toLowerCase()?u=k.value:"undefined"!==typeof k.value&&(u=k.value),k.className&&-1!==k.className.indexOf("cly_user_")){var G=k.className.split(" ");for(k=0;k<G.length;k++)if(0===G[k].indexOf("cly_user_")){h[G[k].replace("cly_user_","")]=u;n=!0;break}}else if(k.type&&"email"===k.type.toLowerCase()||k.name&&-1!==k.name.toLowerCase().indexOf("email")||k.id&&-1!==k.id.toLowerCase().indexOf("email")||
|
|
104
|
+
k.id&&r[k.id]&&-1!==r[k.id].toLowerCase().indexOf("email")||/[^@\s]+@[^@\s]+\.[^@\s]+/.test(u))h.email||(h.email=u),n=!0;else if(k.name&&-1!==k.name.toLowerCase().indexOf("username")||k.id&&-1!==k.id.toLowerCase().indexOf("username")||k.id&&r[k.id]&&-1!==r[k.id].toLowerCase().indexOf("username"))h.username||(h.username=u),n=!0;else if(k.name&&(-1!==k.name.toLowerCase().indexOf("tel")||-1!==k.name.toLowerCase().indexOf("phone")||-1!==k.name.toLowerCase().indexOf("number"))||k.id&&(-1!==k.id.toLowerCase().indexOf("tel")||
|
|
105
|
+
-1!==k.id.toLowerCase().indexOf("phone")||-1!==k.id.toLowerCase().indexOf("number"))||k.id&&r[k.id]&&(-1!==r[k.id].toLowerCase().indexOf("tel")||-1!==r[k.id].toLowerCase().indexOf("phone")||-1!==r[k.id].toLowerCase().indexOf("number")))h.phone||(h.phone=u),n=!0;else if(k.name&&(-1!==k.name.toLowerCase().indexOf("org")||-1!==k.name.toLowerCase().indexOf("company"))||k.id&&(-1!==k.id.toLowerCase().indexOf("org")||-1!==k.id.toLowerCase().indexOf("company"))||k.id&&r[k.id]&&(-1!==r[k.id].toLowerCase().indexOf("org")||
|
|
106
|
+
-1!==r[k.id].toLowerCase().indexOf("company")))h.organization||(h.organization=u),n=!0;else if(k.name&&-1!==k.name.toLowerCase().indexOf("name")||k.id&&-1!==k.id.toLowerCase().indexOf("name")||k.id&&r[k.id]&&-1!==r[k.id].toLowerCase().indexOf("name"))h.name||(h.name=""),h.name+=u+" ",n=!0}n&&(b(e,a).call(a,f.INFO,"collect_from_forms, Gathered user data",h),d?a.user_details({custom:h}):a.user_details(h))})):b(e,a).call(a,f.WARNING,"collect_from_forms, window object is not available. Not collecting from forms.")});
|
|
107
|
+
w(this,"collect_from_facebook",function(c){A?"undefined"!==typeof FB&&FB&&FB.api?(b(e,a).call(a,f.INFO,"collect_from_facebook, Starting to collect possible user data"),FB.api("/me",function(d){var g={};d.name&&(g.name=d.name);d.email&&(g.email=d.email);"male"===d.gender?g.gender="M":"female"===d.gender&&(g.gender="F");if(d.birthday){var h=d.birthday.split("/").pop();h&&4===h.length&&(g.byear=h)}d.work&&d.work[0]&&d.work[0].employer&&d.work[0].employer.name&&(g.organization=d.work[0].employer.name);
|
|
108
|
+
if(c){g.custom={};for(var n in c){h=c[n].split(".");for(var k=d,r=0;r<h.length&&(k=k[h[r]],"undefined"!==typeof k);r++);"undefined"!==typeof k&&(g.custom[n]=k)}}a.user_details(g)})):b(e,a).call(a,f.ERROR,"collect_from_facebook, Facebook SDK is not available"):b(e,a).call(a,f.WARNING,"collect_from_facebook, window object is not available. Not collecting from Facebook.")});w(this,"opt_out",function(){b(e,a).call(a,f.WARNING,"opt_out, Opting out the user. Deprecated function call! Use 'consent' in place of this call.");
|
|
109
|
+
a.ignore_visitor=!0;b(z,a).call(a,"cly_ignore",!0)});w(this,"opt_in",function(){b(e,a).call(a,f.WARNING,"opt_in, Opting in the user. Deprecated function call! Use 'consent' in place of this call.");b(z,a).call(a,"cly_ignore",!1);a.ignore_visitor=!1;b(Pb,a).call(a);a.ignore_visitor||b(Ta,a)||b(hb,a).call(a)});w(this,"report_feedback",function(c){b(e,a).call(a,f.WARNING,"report_feedback, Deprecated function call! Use 'recordRatingWidgetWithID' or 'reportFeedbackWidgetManually' in place of this call. Call will be redirected to 'recordRatingWidgetWithID' now!");
|
|
110
|
+
a.recordRatingWidgetWithID(c)});w(this,"recordRatingWidgetWithID",function(c){b(e,a).call(a,f.INFO,"recordRatingWidgetWithID, Providing information about user with ID: [ "+c.widget_id+" ]");if(a.check_consent("star-rating"))if(c.widget_id)if(c.rating){var d={key:O.STAR_RATING,count:1,segmentation:{}};d.segmentation=Ya(c,"widget_id contactMe platform app_version rating email comment".split(" "));d.segmentation.app_version||(d.segmentation.app_version=a.metrics._app_version||a.app_version);5<d.segmentation.rating?
|
|
111
|
+
(b(e,a).call(a,f.WARNING,"recordRatingWidgetWithID, You have entered a rating higher than 5. Changing it back to 5 now."),d.segmentation.rating=5):1>d.segmentation.rating&&(b(e,a).call(a,f.WARNING,"recordRatingWidgetWithID, You have entered a rating lower than 1. Changing it back to 1 now."),d.segmentation.rating=1);b(e,a).call(a,f.INFO,"recordRatingWidgetWithID, Reporting Rating Widget: ",d);b(Y,a).call(a,d)}else b(e,a).call(a,f.ERROR,"recordRatingWidgetWithID, Rating Widget must contain rating property");
|
|
112
|
+
else b(e,a).call(a,f.ERROR,"recordRatingWidgetWithID, Rating Widget must contain widget_id property")});w(this,"reportFeedbackWidgetManually",function(c,d,g){if(a.check_consent("feedback"))if(c&&d)if(c._id)if(b(M,a))b(e,a).call(a,f.ERROR,"reportFeedbackWidgetManually, Feedback Widgets can not be reported in offline mode");else{b(e,a).call(a,f.INFO,"reportFeedbackWidgetManually, Providing information about user with, provided result of the widget with ID: [ "+c._id+" ] and type: ["+c.type+"]");var h=
|
|
113
|
+
[];d=c.type;if("nps"===d){if(g){if(!g.rating){b(e,a).call(a,f.ERROR,"reportFeedbackWidgetManually, Widget must contain rating property");return}g.rating=Math.round(g.rating);10<g.rating?(b(e,a).call(a,f.WARNING,"reportFeedbackWidgetManually, You have entered a rating higher than 10. Changing it back to 10 now."),g.rating=10):0>g.rating&&(b(e,a).call(a,f.WARNING,"reportFeedbackWidgetManually, You have entered a rating lower than 0. Changing it back to 0 now."),g.rating=0);h=["rating","comment"]}var n=
|
|
114
|
+
O.NPS}else if("survey"===d){if(g){if(1>Object.keys(g).length){b(e,a).call(a,f.ERROR,"reportFeedbackWidgetManually, Widget should have answers to be reported");return}h=Object.keys(g)}n=O.SURVEY}else if("rating"===d){if(g){if(!g.rating){b(e,a).call(a,f.ERROR,"reportFeedbackWidgetManually, Widget must contain rating property");return}g.rating=Math.round(g.rating);5<g.rating?(b(e,a).call(a,f.WARNING,"reportFeedbackWidgetManually, You have entered a rating higher than 5. Changing it back to 5 now."),
|
|
115
|
+
g.rating=5):1>g.rating&&(b(e,a).call(a,f.WARNING,"reportFeedbackWidgetManually, You have entered a rating lower than 1. Changing it back to 1 now."),g.rating=1);h=["rating","comment","email","contactMe"]}n=O.STAR_RATING}else{b(e,a).call(a,f.ERROR,"reportFeedbackWidgetManually, Widget has an unacceptable type");return}c={key:n,count:1,segmentation:{widget_id:c._id,platform:a.platform,app_version:a.metrics._app_version||a.app_version}};if(null===g)c.segmentation.closed=1;else{n=c.segmentation;if(h){for(var k,
|
|
116
|
+
r=0,u=h.length;r<u;r++)k=h[r],"undefined"!==typeof g[k]&&(n[k]=g[k]);g=n}else g=void 0;c.segmentation=g}b(e,a).call(a,f.INFO,"reportFeedbackWidgetManually, Reporting "+d+": ",c);b(Y,a).call(a,c)}else b(e,a).call(a,f.ERROR,"reportFeedbackWidgetManually, Feedback Widgets must contain _id property");else b(e,a).call(a,f.ERROR,"reportFeedbackWidgetManually, Widget data and/or Widget object not provided. Aborting.")});w(this,"show_feedback_popup",function(c){A?(b(e,a).call(a,f.WARNING,"show_feedback_popup, Deprecated function call! Use 'presentRatingWidgetWithID' in place of this call. Call will be redirected now!"),
|
|
117
|
+
presentRatingWidgetWithID(c)):b(e,a).call(a,f.WARNING,"show_feedback_popup, window object is not available. Not showing feedback popup.")});w(this,"presentRatingWidgetWithID",function(c){A?(b(e,a).call(a,f.INFO,"presentRatingWidgetWithID, Showing rating widget popup for the widget with ID: [ "+c+" ]"),a.check_consent("star-rating")&&(b(M,a)?b(e,a).call(a,f.ERROR,"presentRatingWidgetWithID, Cannot show ratingWidget popup in offline mode"):b(ea,a).call(a,"presentRatingWidgetWithID,",a.url+"/o/feedback/widget",
|
|
118
|
+
{widget_id:c,av:a.app_version},function(d,g,h){if(!d)try{var n=JSON.parse(h);b(tb,a).call(a,n,!1)}catch(k){b(e,a).call(a,f.ERROR,"presentRatingWidgetWithID, JSON parse failed: "+k)}},!0))):b(e,a).call(a,f.WARNING,"presentRatingWidgetWithID, window object is not available. Not showing rating widget popup.")});w(this,"initialize_feedback_popups",function(c){A?(b(e,a).call(a,f.WARNING,"initialize_feedback_popups, Deprecated function call! Use 'initializeRatingWidgets' in place of this call. Call will be redirected now!"),
|
|
119
|
+
a.initializeRatingWidgets(c)):b(e,a).call(a,f.WARNING,"initialize_feedback_popups, window object is not available. Not initializing feedback popups.")});w(this,"initializeRatingWidgets",function(c){if(A){if(b(e,a).call(a,f.INFO,"initializeRatingWidgets, Initializing rating widget with provided widget IDs:[ "+c+"]"),a.check_consent("star-rating")){c||(c=b(B,a).call(a,"cly_fb_widgets"));for(var d=document.getElementsByClassName("countly-feedback-sticker");0<d.length;)d[0].remove();b(ea,a).call(a,"initializeRatingWidgets,",
|
|
120
|
+
a.url+"/o/feedback/multiple-widgets-by-id",{widgets:JSON.stringify(c),av:a.app_version},function(g,h,n){if(!g)try{var k=JSON.parse(n);for(g=0;g<k.length;g++)if("true"===k[g].is_active){var r=k[g].target_devices,u=dc();if(r[u])if("string"===typeof k[g].hide_sticker&&(k[g].hide_sticker="true"===k[g].hide_sticker),"all"!==k[g].target_page||k[g].hide_sticker){var y=k[g].target_pages;for(h=0;h<y.length;h++){var G=y[h].substr(0,y[h].length-1)===window.location.pathname.substr(0,y[h].length-1),U=y[h]===
|
|
121
|
+
window.location.pathname;(y[h].includes("*")&&G||U)&&!k[g].hide_sticker&&b(tb,a).call(a,k[g],!0)}}else b(tb,a).call(a,k[g],!0)}}catch(J){b(e,a).call(a,f.ERROR,"initializeRatingWidgets, JSON parse error: "+J)}},!0)}}else b(e,a).call(a,f.WARNING,"initializeRatingWidgets, window object is not available. Not initializing rating widgets.")});w(this,"enable_feedback",function(c){A?(b(e,a).call(a,f.WARNING,"enable_feedback, Deprecated function call! Use 'enableRatingWidgets' in place of this call. Call will be redirected now!"),
|
|
122
|
+
a.enableRatingWidgets(c)):b(e,a).call(a,f.WARNING,"enable_feedback, window object is not available. Not enabling feedback.")});w(this,"enableRatingWidgets",function(c){A?(b(e,a).call(a,f.INFO,"enableRatingWidgets, Enabling rating widget with params:",c),a.check_consent("star-rating")&&(b(M,a)?b(e,a).call(a,f.ERROR,"enableRatingWidgets, Cannot enable rating widgets in offline mode"):(b(z,a).call(a,"cly_fb_widgets",c.popups||c.widgets),mb(a.url+"/star-rating/stylesheets/countly-feedback-web.css"),c=
|
|
123
|
+
c.popups||c.widgets,0<c.length?(document.body.insertAdjacentHTML("beforeend",'<div id="cfbg"></div>'),a.initializeRatingWidgets(c)):b(e,a).call(a,f.ERROR,"enableRatingWidgets, You should provide at least one widget id as param. Read documentation for more detail. https://resources.count.ly/plugins/feedback")))):b(e,a).call(a,f.WARNING,"enableRatingWidgets, window object is not available. Not enabling rating widgets.")});q(this,rb,function(c,d){b(e,a).call(a,f.INFO,"showWidget, Showing ".concat(c,
|
|
124
|
+
" widget, nameIDorTag:[").concat(d,"]"));a.get_available_feedback_widgets(function(g,h){h?b(e,a).call(a,f.ERROR,"showWidget, Error while getting feedback widgets list: ".concat(h)):(h=g.find(function(n){return n.type===c}),d&&"string"===typeof d&&(g=g.find(function(n){return n.type===c&&(n.name===d||n._id===d||n.tg.includes(d))}))&&(h=g,b(e,a).call(a,f.VERBOSE,"showWidget, Found ".concat(c," widget by name, id, or tag: [").concat(JSON.stringify(g),"]"))),h?a.present_feedback_widget(h,null,null,null):
|
|
125
|
+
b(e,a).call(a,f.ERROR,"showWidget, No ".concat(c," widget found.")))})});w(this,"feedback",{showNPS:function(c){return b(rb,a).call(a,"nps",c)},showSurvey:function(c){return b(rb,a).call(a,"survey",c)},showRating:function(c){return b(rb,a).call(a,"rating",c)}});w(this,"get_available_feedback_widgets",function(c){b(e,a).call(a,f.INFO,"get_available_feedback_widgets, Getting the feedback list, callback function is provided:["+!!c+"]");if(a.check_consent("feedback"))if(b(M,a))b(e,a).call(a,f.ERROR,"get_available_feedback_widgets, Cannot enable feedback widgets in offline mode.");
|
|
126
|
+
else{var d=a.url+b(Na,a),g={method:"feedback",device_id:a.device_id,app_key:a.app_key,av:a.app_version};b(ea,a).call(a,"get_available_feedback_widgets,",d,g,function(h,n,k){if(h)c&&c(null,h);else try{var r=JSON.parse(k).result||[];c&&c(r,null)}catch(u){b(e,a).call(a,f.ERROR,"get_available_feedback_widgets, Error while parsing feedback widgets list: "+u),c&&c(null,u)}},!1)}else c&&c(null,Error("Consent for feedback not provided."))});w(this,"getFeedbackWidgetData",function(c,d){if(c.type)if(b(e,a).call(a,
|
|
127
|
+
f.INFO,"getFeedbackWidgetData, Retrieving data for: ["+JSON.stringify(c)+"], callback function is provided:["+!!d+"]"),a.check_consent("feedback"))if(b(M,a))b(e,a).call(a,f.ERROR,"getFeedbackWidgetData, Cannot enable feedback widgets in offline mode.");else{var g=a.url,h={widget_id:c._id,shown:1,sdk_version:b(pa,a),sdk_name:b(ua,a),platform:a.platform,app_version:a.app_version};if("nps"===c.type)g+="/o/surveys/nps/widget";else if("survey"===c.type)g+="/o/surveys/survey/widget";else if("rating"===
|
|
128
|
+
c.type)g+="/o/surveys/rating/widget";else{b(e,a).call(a,f.ERROR,"getFeedbackWidgetData, Unknown type info: ["+c.type+"]");return}b(ea,a).call(a,"getFeedbackWidgetData,",g,h,n,!0);var n=function(k,r,u){if(k)d&&d(null,k);else try{var y=JSON.parse(u);d&&d(y,null)}catch(G){b(e,a).call(a,f.ERROR,"getFeedbackWidgetData, Error while parsing feedback widgets list: "+G),d&&d(null,G)}}}else d&&d(null,Error("Consent for feedback not provided."));else b(e,a).call(a,f.ERROR,"getFeedbackWidgetData, Expected the provided widget object to have a type but got: ["+
|
|
129
|
+
JSON.stringify(c)+"], aborting.")});w(this,"present_feedback_widget",function(c,d,g,h){if(A){if(b(e,a).call(a,f.INFO,"present_feedback_widget, Presenting the feedback widget by appending to the element with ID: [ "+d+" ] and className: [ "+g+" ]"),a.check_consent("feedback"))if(!c||"object"!==R(c)||Array.isArray(c))b(e,a).call(a,f.ERROR,"present_feedback_widget, Please provide at least one feedback widget object.");else{b(e,a).call(a,f.INFO,"present_feedback_widget, Adding segmentation to feedback widgets:["+
|
|
130
|
+
JSON.stringify(h)+"]");h&&"object"===R(h)&&0!==Object.keys(h).length||(b(e,a).call(a,f.DEBUG,"present_feedback_widget, Segmentation is not an object or empty"),h=null);try{var n=a.url;if("nps"===c.type)b(e,a).call(a,f.DEBUG,"present_feedback_widget, Widget type: nps."),n+="/feedback/nps";else if("survey"===c.type)b(e,a).call(a,f.DEBUG,"present_feedback_widget, Widget type: survey."),n+="/feedback/survey";else if("rating"===c.type)b(e,a).call(a,f.DEBUG,"present_feedback_widget, Widget type: rating."),
|
|
131
|
+
n+="/feedback/rating";else{b(e,a).call(a,f.ERROR,"present_feedback_widget, Feedback widget only accepts nps, rating and survey types.");return}var k=window.origin||window.location.origin;if("rating"===c.type){b(e,a).call(a,f.DEBUG,"present_feedback_widget, Loading css for rating widget.");var r="ratings";mb(a.url+"/star-rating/stylesheets/countly-feedback-web.css")}else b(e,a).call(a,f.DEBUG,"present_feedback_widget, Loading css for survey or nps."),mb(a.url+"/surveys/stylesheets/countly-surveys.css"),
|
|
132
|
+
r="surveys";n+="?widget_id="+c._id;n+="&app_key="+a.app_key;n+="&device_id="+a.device_id;n+="&sdk_name="+b(ua,a);n+="&platform="+a.platform;n+="&app_version="+a.app_version;n+="&sdk_version="+b(pa,a);var u={tc:1};h&&(u.sg=h);n+="&custom="+JSON.stringify(u);n+="&origin="+k;n+="&widget_v=web";var y=document.createElement("iframe");y.src=n;y.name="countly-"+r+"-iframe";y.id="countly-"+r+"-iframe";var G=!1;y.onload=function(){G&&(document.getElementById("countly-"+r+"-wrapper-"+c._id).style.display="none",
|
|
133
|
+
document.getElementById("csbg").style.display="none");G=!0;b(e,a).call(a,f.DEBUG,"present_feedback_widget, Loaded iframe.")};for(var U=document.getElementById("csbg");U;)U.remove(),U=document.getElementById("csbg"),b(e,a).call(a,f.DEBUG,"present_feedback_widget, Removing past overlay.");var J=document.getElementsByClassName("countly-"+r+"-wrapper");for(h=0;h<J.length;h++)J[h].remove(),b(e,a).call(a,f.DEBUG,"present_feedback_widget, Removed a wrapper.");J=document.createElement("div");J.className=
|
|
134
|
+
"countly-"+r+"-wrapper";J.id="countly-"+r+"-wrapper-"+c._id;"survey"===c.type&&(J.className=J.className+" "+c.appearance.position);var Xa=document.body;h=!1;d&&(document.getElementById(d)?(Xa=document.getElementById(d),h=!0):b(e,a).call(a,f.ERROR,"present_feedback_widget, Provided ID not found."));h||g&&(document.getElementsByClassName(g)[0]?Xa=document.getElementsByClassName(g)[0]:b(e,a).call(a,f.ERROR,"present_feedback_widget, Provided class not found."));Xa.insertAdjacentHTML("beforeend",'<div id="csbg"></div>');
|
|
135
|
+
Xa.appendChild(J);if("rating"===c.type){var $b=document.createElement("div");$b.className="countly-ratings-overlay";$b.id="countly-ratings-overlay-"+c._id;J.appendChild($b);b(e,a).call(a,f.DEBUG,"present_feedback_widget, appended the rating overlay to wrapper");D(document.getElementById("countly-ratings-overlay-"+c._id),"click",function(){document.getElementById("countly-ratings-wrapper-"+c._id).style.display="none"})}J.appendChild(y);b(e,a).call(a,f.DEBUG,"present_feedback_widget, Appended the iframe");
|
|
136
|
+
D(window,"message",function(E){b(e,a).call(a,f.DEBUG,"present_feedback_widget, Received message from widget with origin: ["+E.origin+"] and data: ["+E.data+"]");var V={};try{V=JSON.parse(E.data)}catch(Ic){b(e,a).call(a,f.ERROR,"present_feedback_widget, Error while parsing message body "+Ic)}!0!==V.close?b(e,a).call(a,f.DEBUG,"present_feedback_widget, These are not the closing signals you are looking for"):(document.getElementById("countly-"+r+"-wrapper-"+c._id).style.display="none",document.getElementById("csbg").style.display=
|
|
137
|
+
"none",b(e,a).call(a,f.DEBUG,"present_feedback_widget, Closed the widget"))});var Ia=function(E){document.getElementById("countly-surveys-wrapper-"+E._id).style.display="block";document.getElementById("csbg").style.display="block"},Dc=function(E){for(var V=document.getElementsByClassName("countly-feedback-sticker");0<V.length;)b(e,a).call(a,f.VERBOSE,"present_feedback_widget, Removing old stickers"),V[0].remove();E.appearance.hideS||(b(e,a).call(a,f.DEBUG,"present_feedback_widget, handling the sticker as it was not set to hidden"),
|
|
138
|
+
V=document.createElement("div"),V.innerText=E.appearance.text,V.style.color=7>E.appearance.text_color.length?"#"+E.appearance.text_color:E.appearance.text_color,V.style.backgroundColor=7>E.appearance.bg_color.length?"#"+E.appearance.bg_color:E.appearance.bg_color,V.className="countly-feedback-sticker "+E.appearance.position+"-"+E.appearance.size,V.id="countly-feedback-sticker-"+E._id,document.body.appendChild(V),D(document.getElementById("countly-feedback-sticker-"+E._id),"click",function(){document.getElementById("countly-ratings-wrapper-"+
|
|
139
|
+
E._id).style.display="flex";document.getElementById("csbg").style.display="block"}));D(document.getElementById("countly-feedback-close-icon-"+E._id),"click",function(){document.getElementById("countly-ratings-wrapper-"+E._id).style.display="none";document.getElementById("csbg").style.display="none"})};if("survey"===c.type){var W=!1;switch(c.showPolicy){case "afterPageLoad":"complete"===document.readyState?W||(W=!0,Ia(c)):D(document,"readystatechange",function(E){"complete"!==E.target.readyState||
|
|
140
|
+
W||(W=!0,Ia(c))});break;case "afterConstantDelay":setTimeout(function(){W||(W=!0,Ia(c))},1E4);break;case "onAbandon":"complete"===document.readyState?D(document,"mouseleave",function(){W||(W=!0,Ia(c))}):D(document,"readystatechange",function(E){"complete"===E.target.readyState&&D(document,"mouseleave",function(){W||(W=!0,Ia(c))})});break;case "onScrollHalfwayDown":D(window,"scroll",function(){if(!W){var E=Math.max(window.scrollY,document.body.scrollTop,document.documentElement.scrollTop),V=lb();E>=
|
|
141
|
+
V/2&&(W=!0,Ia(c))}});break;default:W||(W=!0,Ia(c))}}else if("nps"===c.type)document.getElementById("countly-"+r+"-wrapper-"+c._id).style.display="block",document.getElementById("csbg").style.display="block";else if("rating"===c.type){var Bb=!1;"complete"===document.readyState?Bb||(Bb=!0,Dc(c)):D(document,"readystatechange",function(E){"complete"!==E.target.readyState||Bb||(Bb=!0,Dc(c))})}}catch(E){b(e,a).call(a,f.ERROR,"present_feedback_widget, Something went wrong while presenting the widget: "+
|
|
142
|
+
E)}}}else b(e,a).call(a,f.WARNING,"present_feedback_widget, window object is not available. Not presenting feedback widget.")});w(this,"recordError",function(c,d,g){b(e,a).call(a,f.INFO,"recordError, Recording error");if(a.check_consent("crashes")&&c){g=g||b(bb,a);var h="";"object"===R(c)?"undefined"!==typeof c.stack?h=c.stack:("undefined"!==typeof c.name&&(h+=c.name+":"),"undefined"!==typeof c.message&&(h+=c.message+"\n"),"undefined"!==typeof c.fileName&&(h+="in "+c.fileName+"\n"),"undefined"!==
|
|
143
|
+
typeof c.lineNumber&&(h+="on "+c.lineNumber),"undefined"!==typeof c.columnNumber&&(h+=":"+c.columnNumber)):h=c+"";if(h.length>a.maxStackTraceLineLength*a.maxStackTraceLinesPerThread){b(e,a).call(a,f.DEBUG,"record_error, Error stack is too long will be truncated");c=h.split("\n");c.length>a.maxStackTraceLinesPerThread&&(c=c.splice(0,a.maxStackTraceLinesPerThread));h=0;for(var n=c.length;h<n;h++)c[h].length>a.maxStackTraceLineLength&&(c[h]=c[h].substring(0,a.maxStackTraceLineLength));h=c.join("\n")}d=
|
|
144
|
+
!!d;c=b(ib,a).call(a);h={_resolution:c._resolution,_error:h,_app_version:c._app_version,_run:K()-b(nb,a),_not_os_specific:!0,_javascript:!0};if(n=navigator.battery||navigator.webkitBattery||navigator.mozBattery||navigator.msBattery)h._bat=Math.floor(100*n.level);"undefined"!==typeof navigator.onLine&&(h._online=!!navigator.onLine);A&&(h._background=!document.hasFocus());0<b(la,a).length&&(h._logs=b(la,a).join("\n"));l(la,a,[]);h._nonfatal=d;h._view=a.getViewName();"undefined"!==typeof g&&(g=ka(g,
|
|
145
|
+
a.maxKeyLength,a.maxValueSize,a.maxSegmentationValues,"record_error",b(e,a)),h._custom=g);try{var k=document.createElement("canvas").getContext("experimental-webgl");h._opengl=k.getParameter(k.VERSION)}catch(r){b(e,a).call(a,f.ERROR,"Could not get the experimental-webgl context: "+r)}d={};d.crash=JSON.stringify(h);d.metrics=JSON.stringify({_ua:c._ua});b(Q,a).call(a,d)}});q(this,Pb,function(){b(e,a).call(a,f.INFO,"checkIgnore, Checking if user or visit should be ignored");a.ignore_prefetch&&A&&"undefined"!==
|
|
146
|
+
typeof document.visibilityState&&"prerender"===document.visibilityState&&(a.ignore_visitor=!0,b(e,a).call(a,f.DEBUG,"checkIgnore, Ignoring visit due to prerendering"));a.ignore_bots&&ec()&&(a.ignore_visitor=!0,b(e,a).call(a,f.DEBUG,"checkIgnore, Ignoring visit due to bot"))});w(this,"content",{enterContentZone:function(){b(Qb,a).call(a)},exitContentZone:function(){b(Ea,a)?(b(e,a).call(a,f.INFO,"content.exitContentZone, Exiting content zone"),l(Ea,a,!1),b(Va,a)&&(clearInterval(b(Va,a)),b(e,a).call(a,
|
|
147
|
+
f.DEBUG,"content.exitContentZone, content zone exited"))):b(e,a).call(a,f.DEBUG,"content.exitContentZone, Not in content zone")}});q(this,Qb,function(c){A?b(Ea,a)&&!c?b(e,a).call(a,f.DEBUG,"content.enterContentZone, Already in content zone"):(b(e,a).call(a,f.INFO,"content.enterContentZone, Entering content zone"),l(Ea,a,!0),c||b(Rb,a).call(a),l(Va,a,setInterval(function(){b(Rb,a).call(a)},b(ob,a)))):b(e,a).call(a,f.WARNING,"content.enterContentZone, window object is not available. Not entering content zone.")});
|
|
148
|
+
q(this,oc,function(){b(e,a).call(a,f.DEBUG,"prepareContentRequest, forming content request");var c=b(wb,a).call(a,!0),d={l:{},p:{}},g=Math.max(c.width,c.height);c=Math.min(c.width,c.height);d.l.w=g;d.l.h=c;d.p.w=c;d.p.h=g;d={method:"queue",la:(navigator.language||navigator.browserLanguage||navigator.systemLanguage||navigator.userLanguage).split("-")[0],resolution:JSON.stringify(d),cly_ws:1,cly_origin:window.location.origin};b(Ga,a).call(a,d);return d});q(this,Rb,function(){b(e,a).call(a,f.DEBUG,"sendContentRequest, sending content request");
|
|
149
|
+
var c=b(oc,a).call(a);b(ea,a).call(a,"sendContentRequest,",a.url+b(Kb,a),c,function(d,g,h){d||(b(e,a).call(a,f.DEBUG,"sendContentRequest, received content: ["+h+"]"),b(pc,a).call(a,h),clearInterval(b(Va,a)),window.addEventListener("message",function(n){b(qc,a).call(a,n)}))},!0)});q(this,pc,function(c){if(c){b(e,a).call(a,f.DEBUG,"displayContent, displaying content");c=JSON.parse(c);var d=document.createElement("iframe");d.id=b(pb,a);d.src=c.html;d.style.position="absolute";var g=c.geo.p,h=b(wb,a).call(a,
|
|
150
|
+
!0);h.width>=h.height&&(g=c.geo.l);d.style.left=g.x+"px";d.style.top=g.y+"px";d.style.width=g.w+"px";d.style.height=g.h+"px";d.style.border="none";d.style.zIndex="999999";document.body.appendChild(d)}else b(e,a).call(a,f.DEBUG,"displayContent, no content to display")});q(this,qc,function(c){b(e,a).call(a,f.DEBUG,"sendContentRequest, Received message from: ["+c.origin+"] with data: ["+JSON.stringify(c.data)+"]");if(c.origin!==a.url)b(e,a).call(a,f.ERROR,"sendContentRequest, Received message from invalid origin");
|
|
151
|
+
else{var d=c.data;c=d.close;var g=d.link;if(d=d.event){b(e,a).call(a,f.DEBUG,"sendContentRequest, Received event: ["+d+"]");1===c&&(b(e,a).call(a,f.DEBUG,"sendContentRequest, Closing content frame for event: ["+d+"]"),b(sb,a).call(a));if(!Array.isArray(d)){if("object"===R(d))throw new TypeError('"event" is read-only');b(e,a).call(a,f.ERROR,"sendContentRequest, Invalid event type: ["+R(d)+"]");return}for(var h=0;h<d.length;h++)b(Y,a).call(a,d[h])}g&&(1===c&&(b(e,a).call(a,f.DEBUG,"sendContentRequest, Closing content frame for link"),
|
|
152
|
+
b(sb,a).call(a)),window.open(g,"_blank"),b(e,a).call(a,f.DEBUG,"sendContentRequest, Opened link in new tab: [".concat(g,"]")));1===c&&b(sb,a).call(a)}});q(this,sb,function(){var c=document.getElementById(b(pb,a));c&&(c.remove(),b(e,a).call(a,f.DEBUG,"sendContentRequest, removed iframe"),b(Ea,a)&&b(Qb,a).call(a,!0))});q(this,Fa,function(){0<b(N,a).length&&(b(e,a).call(a,f.DEBUG,"Flushing events"),b(Q,a).call(a,{events:JSON.stringify(b(N,a))}),l(N,a,[]),b(z,a).call(a,"cly_event",b(N,a)))});q(this,tb,
|
|
153
|
+
function(c,d){if(A)if(document.getElementById("countly-feedback-sticker-"+c._id))b(e,a).call(a,f.ERROR,"Widget with same ID exists");else try{var g=document.createElement("div");g.className="countly-iframe-wrapper";g.id="countly-iframe-wrapper-"+c._id;var h=document.createElement("span");h.className="countly-feedback-close-icon";h.id="countly-feedback-close-icon-"+c._id;h.innerText="x";var n=document.createElement("iframe");n.name="countly-feedback-iframe";n.id="countly-feedback-iframe";n.src=a.url+
|
|
154
|
+
"/feedback?widget_id="+c._id+"&app_key="+a.app_key+"&device_id="+a.device_id+"&sdk_version="+b(pa,a);document.body.appendChild(g);g.appendChild(h);g.appendChild(n);D(document.getElementById("countly-feedback-close-icon-"+c._id),"click",function(){document.getElementById("countly-iframe-wrapper-"+c._id).style.display="none";document.getElementById("cfbg").style.display="none"});if(d){var k=document.createElementNS("http://www.w3.org/2000/svg","svg");k.id="feedback-sticker-svg";k.setAttribute("aria-hidden",
|
|
155
|
+
"true");k.setAttribute("data-prefix","far");k.setAttribute("data-icon","grin");k.setAttribute("class","svg-inline--fa fa-grin fa-w-16");k.setAttribute("role","img");k.setAttribute("xmlns","http://www.w3.org/2000/svg");k.setAttribute("viewBox","0 0 496 512");var r=document.createElementNS("http://www.w3.org/2000/svg","path");r.id="smileyPathInStickerSvg";r.setAttribute("fill","white");r.setAttribute("d","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z");
|
|
156
|
+
var u=document.createElement("span");u.innerText=c.trigger_button_text;var y=document.createElement("div");y.style.color=7>c.trigger_font_color.length?"#"+c.trigger_font_color:c.trigger_font_color;y.style.backgroundColor=7>c.trigger_bg_color.length?"#"+c.trigger_bg_color:c.trigger_bg_color;y.className="countly-feedback-sticker "+c.trigger_position+"-"+c.trigger_size;y.id="countly-feedback-sticker-"+c._id;k.appendChild(r);y.appendChild(k);y.appendChild(u);document.body.appendChild(y);var G=document.getElementById("smileyPathInStickerSvg");
|
|
157
|
+
G&&(G.style.fill=7>c.trigger_font_color.length?"#"+c.trigger_font_color:c.trigger_font_color);D(document.getElementById("countly-feedback-sticker-"+c._id),"click",function(){document.getElementById("countly-iframe-wrapper-"+c._id).style.display="block";document.getElementById("cfbg").style.display="block"})}else document.getElementById("countly-iframe-wrapper-"+c._id).style.display="block",document.getElementById("cfbg").style.display="block"}catch(U){b(e,a).call(a,f.ERROR,"Somethings went wrong while element injecting process: "+
|
|
158
|
+
U)}else b(e,a).call(a,f.WARNING,"processWidget, window object is not available. Not processing widget.")});q(this,Sb,function(){var c;if("undefined"!==typeof a.onload&&0<a.onload.length){for(c=0;c<a.onload.length;c++)if("function"===typeof a.onload[c])a.onload[c](a);a.onload=[]}});q(this,ub,function(){if(b(S,a)){b(e,a).call(a,f.INFO,"reportViewDuration, Reporting view duration for: ["+b(S,a)+"]");var c={name:b(S,a)};a.check_consent("views")&&(b(Y,a).call(a,{key:O.VIEW,dur:b(ma,a)?K()-b(xa,a):b(ya,
|
|
159
|
+
a),segmentation:c},b(oa,a)),l(S,a,null))}else b(e,a).call(a,f.INFO,"reportViewDuration, No last view, will not report view duration")});q(this,rc,function(){b(e,a).call(a,f.INFO,"getLastView, Getting last view: ["+b(S,a)+"]");return b(S,a)});q(this,Tb,function(){if(b(ha,a)){b(e,a).call(a,f.DEBUG,"Extending session");var c=b(B,a).call(a,"cly_session");if(!c||parseInt(c)<=K())l(X,a,!1),a.begin_session(!b(wa,a));b(z,a).call(a,"cly_session",K()+60*b(Ba,a))}else b(e,a).call(a,f.DEBUG,"Will not extend the session as session cookie is disabled")});
|
|
160
|
+
q(this,Ga,function(c){c.app_key=a.app_key;c.device_id=a.device_id;c.sdk_name=b(ua,a);c.sdk_version=b(pa,a);c.t=b(H,a);c.av=a.app_version;var d=b(Ub,a).call(a);if(c.metrics){var g=JSON.parse(c.metrics);g._ua||(g._ua=d,c.metrics=JSON.stringify(g))}else c.metrics=JSON.stringify({_ua:d});a.check_consent("location")?(a.country_code&&(c.country_code=a.country_code),a.city&&(c.city=a.city),null!==a.ip_address&&(c.ip_address=a.ip_address)):c.location="";c.timestamp=Eb();d=new Date;c.hour=d.getHours();c.dow=
|
|
161
|
+
d.getDay()});q(this,Q,function(c){a.ignore_visitor?b(e,a).call(a,f.WARNING,"User is opt_out will ignore the request: "+c):a.app_key&&a.device_id?(b(Ga,a).call(a,c),b(L,a).length>b(Pa,a)&&b(L,a).shift(),b(L,a).push(c),b(z,a).call(a,"cly_queue",b(L,a),!0)):b(e,a).call(a,f.ERROR,"app_key or device_id is missing ",a.app_key,a.device_id)});q(this,hb,function(){b(Sb,a).call(a);if(a.ignore_visitor)l(Ta,a,!1),b(e,a).call(a,f.WARNING,"User opt_out, no heartbeat");else{l(Ta,a,!0);b(Ma,a)&&"undefined"!==typeof t.q&&
|
|
162
|
+
0<t.q.length&&b(Ha,a).call(a);if(b(X,a)&&b(wa,a)&&b(ma,a)){var c=K();c-b(fa,a)>b(Ra,a)&&(a.session_duration(c-b(fa,a)),l(fa,a,c),0<a.hcErrorCount&&b(z,a).call(a,Z.errorCount,a.hcErrorCount),0<a.hcWarningCount&&b(z,a).call(a,Z.warningCount,a.hcWarningCount))}0<b(N,a).length&&!a.test_mode_eq&&(b(N,a).length<=b(Aa,a)?(b(Q,a).call(a,{events:JSON.stringify(b(N,a))}),l(N,a,[])):(c=b(N,a).splice(0,b(Aa,a)),b(Q,a).call(a,{events:JSON.stringify(c)})),b(z,a).call(a,"cly_event",b(N,a)));!b(M,a)&&0<b(L,a).length&&
|
|
163
|
+
b(Sa,a)&&K()>b(db,a)&&(l(Sa,a,!1),c=b(L,a)[0],c.rr=b(L,a).length,b(e,a).call(a,f.DEBUG,"Processing request",c),b(z,a).call(a,"cly_queue",b(L,a),!0),a.test_mode||b(ea,a).call(a,"send_request_queue",a.url+b(ab,a),c,function(d,g){d?l(db,a,K()+b(Qa,a)):b(L,a).shift();b(z,a).call(a,"cly_queue",b(L,a),!0);l(Sa,a,!0)},!1));setTimeout(function(){b(hb,a).call(a)},b(Oa,a))}});q(this,sc,function(){return b(gb,a)});q(this,Ha,function(){if("undefined"===typeof t||"undefined"===typeof t.i)b(e,a).call(a,f.DEBUG,
|
|
164
|
+
"Countly is not finished initialization yet, will process the queue after initialization is done");else{var c=t.q;t.q=[];for(var d=0;d<c.length;d++){var g=c[d];b(e,a).call(a,f.DEBUG,"Processing queued calls:"+g);if("function"===typeof g)g();else if(Array.isArray(g)&&0<g.length){var h=a,n=0;try{t.i[g[n]]&&(h=t.i[g[n]],n++)}catch(r){b(e,a).call(a,f.DEBUG,"No instance found for the provided key while processing async queue");t.q.push(g);continue}if("function"===typeof h[g[n]])h[g[n]].apply(h,g.slice(n+
|
|
165
|
+
1));else if(0===g[n].indexOf("userData.")){var k=g[n].replace("userData.","");"function"===typeof h.userData[k]&&h.userData[k].apply(h,g.slice(n+1))}else"function"===typeof t[g[n]]&&t[g[n]].apply(t,g.slice(n+1))}}}});q(this,vb,function(){var c=b(B,a).call(a,"cly_id");return c?(l(H,a,b(B,a).call(a,"cly_id_type")),c):Db()});q(this,tc,function(c){return/[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-4[0-9a-fA-F]{3}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}/.test(c)});q(this,Ub,function(){return a.metrics._ua||La()});q(this,
|
|
166
|
+
ib,function(){var c=JSON.parse(JSON.stringify(a.metrics||{}));c._app_version=c._app_version||a.app_version;c._ua=c._ua||La();var d=b(wb,a).call(a);d&&(d=""+d.width+"x"+d.height,c._resolution=c._resolution||d);A&&window.devicePixelRatio&&(c._density=c._density||window.devicePixelRatio);d=navigator.language||navigator.browserLanguage||navigator.systemLanguage||navigator.userLanguage;"undefined"!==typeof d&&(c._locale=c._locale||d);b(xb,a).call(a)&&(c._store=c._store||document.referrer);b(e,a).call(a,
|
|
167
|
+
f.DEBUG,"Got metrics",c);return c});q(this,wb,function(c){b(e,a).call(a,f.DEBUG,"Getting the resolution of the device");if(!A||!screen)return b(e,a).call(a,f.DEBUG,"No screen available"),null;var d=screen.width?parseInt(screen.width):0,g=screen.height?parseInt(screen.height):0;if(c){c=Math.min(window.innerWidth,document.documentElement.clientWidth);var h=Math.min(window.innerHeight,document.documentElement.clientHeight);d=c?parseInt(c):d;g=h?parseInt(h):g}if(0===d||0===g)return b(e,a).call(a,f.DEBUG,
|
|
168
|
+
"Screen width or height is non existent"),null;navigator.platform&&/iPad|iPhone|iPod/.test(navigator.platform)&&window.devicePixelRatio&&(b(e,a).call(a,f.VERBOSE,"Mobile Mac device detected, adjusting resolution"),d=Math.round(d*window.devicePixelRatio),g=Math.round(g*window.devicePixelRatio));90===Math.abs(screen.orientation.angle)&&(b(e,a).call(a,f.VERBOSE,"Screen is in landscape mode, adjusting resolution"),c=d,d=g,g=c);return{width:d,height:g,orientation:screen.orientation.angle}});q(this,xb,
|
|
169
|
+
function(c){if(!A)return!1;c=c||document.referrer;var d=!1;if("undefined"===typeof c||0===c.length)b(e,a).call(a,f.DEBUG,"Invalid referrer:["+c+"], ignoring.");else{var g=lc.exec(c);if(g)if(g[11])if(g[11]===window.location.hostname)b(e,a).call(a,f.DEBUG,"Referrer is current host:["+c+"], ignoring.");else if(b(ba,a)&&b(ba,a).length)for(d=!0,g=0;g<b(ba,a).length;g++){if(0<=c.indexOf(b(ba,a)[g])){b(e,a).call(a,f.DEBUG,"Referrer in ignore list:["+c+"], ignoring.");d=!1;break}}else b(e,a).call(a,f.DEBUG,
|
|
170
|
+
"Valid referrer:["+c+"]"),d=!0;else b(e,a).call(a,f.DEBUG,"No path found in referrer:["+c+"], ignoring.");else b(e,a).call(a,f.DEBUG,"Referrer is corrupt:["+c+"], ignoring.")}return d});q(this,e,function(c,d,g){if(a.debug&&"undefined"!==typeof console){g&&"object"===R(g)&&(g=JSON.stringify(g));b(Ma,a)||(d="["+a.app_key+"] "+d);c||(c=f.DEBUG);var h="";g&&(h=" "+g);d=c+"[Countly] "+d+h;c===f.ERROR?(console.error(d),b(qa,a).incrementErrorCount()):c===f.WARNING?(console.warn(d),b(qa,a).incrementWarningCount()):
|
|
171
|
+
c===f.INFO?console.info(d):c===f.VERBOSE?console.log(d):console.debug(d)}});q(this,ea,function(c,d,g,h,n){b(gb,a).push({functionName:c,url:d,params:g});A?b(Vb,a).call(a,c,d,g,h,n):b(Wb,a).call(a,c,d,g,h,n)});q(this,Vb,function(c,d,g,h,n){n=n||!1;try{b(e,a).call(a,f.DEBUG,"Sending XML HTTP request");var k=new XMLHttpRequest;g=g||{};Gb(g,a.salt).then(function(r){var u="POST";if(a.force_post||2E3<=r.length)u="POST";"GET"===u?k.open("GET",d+"?"+r,!0):(k.open("POST",d,!0),k.setRequestHeader("Content-type",
|
|
172
|
+
"application/x-www-form-urlencoded"));for(var y in a.headers)k.setRequestHeader(y,a.headers[y]);k.onreadystatechange=function(){4===k.readyState&&(b(e,a).call(a,f.DEBUG,c+" HTTP request completed with status code: ["+k.status+"] and response: ["+k.responseText+"]"),(n?b(zb,a).call(a,k.status,k.responseText):b(yb,a).call(a,k.status,k.responseText))?"function"===typeof h&&h(!1,g,k.responseText):(b(e,a).call(a,f.ERROR,c+" Invalid response from server"),"send_request_queue"===c&&b(qa,a).saveRequestCounters(k.status,
|
|
173
|
+
k.responseText),"function"===typeof h&&h(!0,g,k.status,k.responseText)))};"GET"===u?k.send():k.send(r)})}catch(r){b(e,a).call(a,f.ERROR,c+" Something went wrong while making an XML HTTP request: "+r),"function"===typeof h&&h(!0,g)}});q(this,Wb,function(c,d,g,h,n){n=n||!1;var k;try{b(e,a).call(a,f.DEBUG,"Sending Fetch request");var r="POST",u={"Content-type":"application/x-www-form-urlencoded"},y=null;g=g||{};Gb(g,a.salt).then(function(G){a.force_post||2E3<=G.length?(r="POST",y=G):d+="?"+G;for(var U in a.headers)u[U]=
|
|
174
|
+
a.headers[U];fetch(d,{method:r,headers:u,body:y}).then(function(J){k=J;return k.text()}).then(function(J){b(e,a).call(a,f.DEBUG,c+" Fetch request completed wit status code: ["+k.status+"] and response: ["+J+"]");(n?b(zb,a).call(a,k.status,J):b(yb,a).call(a,k.status,J))?"function"===typeof h&&h(!1,g,J):(b(e,a).call(a,f.ERROR,c+" Invalid response from server"),"send_request_queue"===c&&b(qa,a).saveRequestCounters(k.status,J),"function"===typeof h&&h(!0,g,k.status,J))})["catch"](function(J){b(e,a).call(a,
|
|
175
|
+
f.ERROR,c+" Failed Fetch request: "+J);"function"===typeof h&&h(!0,g)})})}catch(G){b(e,a).call(a,f.ERROR,c+" Something went wrong with the Fetch request attempt: "+G),"function"===typeof h&&h(!0,g)}});q(this,yb,function(c,d){if(!(200<=c&&300>c))return b(e,a).call(a,f.ERROR,"Http response status code:["+c+"] is not within the expected range"),!1;try{var g=JSON.parse(d);return"[object Object]"!==Object.prototype.toString.call(g)?(b(e,a).call(a,f.ERROR,"Http response is not JSON Object"),!1):!!g.result}catch(h){return b(e,
|
|
176
|
+
a).call(a,f.ERROR,"Http response is not JSON: "+h),!1}});q(this,zb,function(c,d){if(!(200<=c&&300>c))return b(e,a).call(a,f.ERROR,"Http response status code:["+c+"] is not within the expected range"),!1;try{var g=JSON.parse(d);return"[object Object]"===Object.prototype.toString.call(g)||Array.isArray(g)?!0:(b(e,a).call(a,f.ERROR,"Http response is not JSON Object nor JSON Array"),!1)}catch(h){return b(e,a).call(a,f.ERROR,"Http response is not JSON: "+h),!1}});q(this,Xb,function(){A?l(Da,a,Math.max(b(Da,
|
|
177
|
+
a),window.scrollY,document.body.scrollTop,document.documentElement.scrollTop)):b(e,a).call(a,f.WARNING,"processScroll, window object is not available. Not processing scroll.")});q(this,Ab,function(){if(!A)b(e,a).call(a,f.WARNING,"processScrollView, window object is not available. Not processing scroll view.");else if(b(Ca,a)){l(Ca,a,!1);var c=lb(),d=Jb(),g=fc();a.check_consent("scrolls")&&(c={type:"scroll",y:b(Da,a)+g,width:d,height:c,view:a.getViewUrl()},c=ka(c,a.maxKeyLength,a.maxValueSize,a.maxSegmentationValues,
|
|
178
|
+
"processScrollView",b(e,a)),a.track_domains&&(c.domain=window.location.hostname),b(Y,a).call(a,{key:O.ACTION,segmentation:c}))}});q(this,uc,function(){return b(H,a)});q(this,Yb,function(c){b(z,a).call(a,"cly_token",c)});q(this,vc,function(){var c=b(B,a).call(a,"cly_token");b(T,a).call(a,"cly_token");return c});q(this,wc,function(){return b(N,a)});q(this,xc,function(){return b(L,a)});q(this,yc,function(c){c+="=";for(var d=document.cookie.split(";"),g=0,h=d.length;g<h;g++){for(var n=d[g];" "===n.charAt(0);)n=
|
|
179
|
+
n.substring(1,n.length);if(0===n.indexOf(c))return n.substring(c.length,n.length)}return null});q(this,Zb,function(c,d,g){var h=new Date;h.setTime(h.getTime()+864E5*g);g="; expires="+h.toGMTString();document.cookie=c+"="+d+g+"; path=/"});q(this,B,function(c,d,g){if("none"===a.storage||"object"!==R(a.storage)&&!A)b(e,a).call(a,f.DEBUG,"Storage is disabled. Value with key: ["+c+"] won't be retrieved");else{g||(c=a.app_key+"/"+c,a.namespace&&(c=Ka(a.namespace)+"/"+c));if("object"===R(a.storage)&&"function"===
|
|
180
|
+
typeof a.storage.getItem){var h=a.storage.getItem(c);return c.endsWith("cly_id")?h:a.deserialize(h)}void 0===d&&(d=b(na,a));d?h=localStorage.getItem(c):"localstorage"!==a.storage&&(h=b(yc,a).call(a,c));return c.endsWith("cly_id")?h:a.deserialize(h)}});q(this,z,function(c,d,g,h){"none"===a.storage||"object"!==R(a.storage)&&!A?b(e,a).call(a,f.DEBUG,"Storage is disabled. Value with key: "+c+" won't be stored"):(h||(c=a.app_key+"/"+c,a.namespace&&(c=Ka(a.namespace)+"/"+c)),"undefined"!==typeof d&&null!==
|
|
181
|
+
d&&("object"===R(a.storage)&&"function"===typeof a.storage.setItem?a.storage.setItem(c,d):(void 0===g&&(g=b(na,a)),d=a.serialize(d),g?localStorage.setItem(c,d):"localstorage"!==a.storage&&b(Zb,a).call(a,c,d,30))))});q(this,T,function(c,d,g){"none"===a.storage||"object"!==R(a.storage)&&!A?b(e,a).call(a,f.DEBUG,"Storage is disabled. Value with key: "+c+" won't be removed"):(g||(c=a.app_key+"/"+c,a.namespace&&(c=Ka(a.namespace)+"/"+c)),"object"===R(a.storage)&&"function"===typeof a.storage.removeItem?
|
|
182
|
+
a.storage.removeItem(c):(void 0===d&&(d=b(na,a)),d?localStorage.removeItem(c):"localstorage"!==a.storage&&b(Zb,a).call(a,c,"",-1)))});q(this,zc,function(){if(b(B,a).call(a,a.namespace+"cly_id",!1,!0)){b(z,a).call(a,"cly_id",b(B,a).call(a,a.namespace+"cly_id",!1,!0));b(z,a).call(a,"cly_id_type",b(B,a).call(a,a.namespace+"cly_id_type",!1,!0));b(z,a).call(a,"cly_event",b(B,a).call(a,a.namespace+"cly_event",!1,!0));b(z,a).call(a,"cly_session",b(B,a).call(a,a.namespace+"cly_session",!1,!0));var c=b(B,
|
|
183
|
+
a).call(a,a.namespace+"cly_queue",!1,!0);Array.isArray(c)&&(c=c.filter(function(d){return d.app_key===a.app_key}),b(z,a).call(a,"cly_queue",c));b(B,a).call(a,a.namespace+"cly_cmp_id",!1,!0)&&(b(z,a).call(a,"cly_cmp_id",b(B,a).call(a,a.namespace+"cly_cmp_id",!1,!0)),b(z,a).call(a,"cly_cmp_uid",b(B,a).call(a,a.namespace+"cly_cmp_uid",!1,!0)));b(B,a).call(a,a.namespace+"cly_ignore",!1,!0)&&b(z,a).call(a,"cly_ignore",b(B,a).call(a,a.namespace+"cly_ignore",!1,!0));b(T,a).call(a,"cly_id",!1,!0);b(T,a).call(a,
|
|
184
|
+
"cly_id_type",!1,!0);b(T,a).call(a,"cly_event",!1,!0);b(T,a).call(a,"cly_session",!1,!0);b(T,a).call(a,"cly_queue",!1,!0);b(T,a).call(a,"cly_cmp_id",!1,!0);b(T,a).call(a,"cly_cmp_uid",!1,!0);b(T,a).call(a,"cly_ignore",!1,!0)}});q(this,Ac,function(c,d){b(e,a).call(a,f.DEBUG,"onStorageChange, Applying storage changes for key:",c);b(e,a).call(a,f.DEBUG,"onStorageChange, Applying storage changes for value:",d);switch(c){case "cly_queue":l(L,a,a.deserialize(d||"[]"));break;case "cly_event":l(N,a,a.deserialize(d||
|
|
185
|
+
"[]"));break;case "cly_remote_configs":l(P,a,a.deserialize(d||"{}"));break;case "cly_ignore":a.ignore_visitor=a.deserialize(d);break;case "cly_id":a.device_id=d;break;case "cly_id_type":l(H,a,a.deserialize(d))}});q(this,Bc,function(){l(L,a,[]);b(z,a).call(a,"cly_queue",[]);l(N,a,[]);b(z,a).call(a,"cly_event",[])});q(this,Cc,function(){return{eventQ:b(N,a),requestQ:b(L,a)}});w(this,"_internals",{store:b(z,this),getDocWidth:Jb,getDocHeight:lb,getViewportHeight:fc,get_page_coord:Ib,get_event_target:kb,
|
|
186
|
+
add_event_listener:D,createNewObjectFromProperties:Ya,truncateObject:ka,truncateSingleValue:C,stripTrailingSlash:Ka,prepareParams:Gb,sendXmlHttpRequest:b(Vb,this),isResponseValid:b(yb,this),getInternalDeviceIdType:b(uc,this),getMsTimestamp:Eb,getTimestamp:K,isResponseValidBroad:b(zb,this),secureRandom:Cb,log:b(e,this),checkIfLoggingIsOn:Za,getMetrics:b(ib,this),getUA:b(Ub,this),prepareRequest:b(Ga,this),generateUUID:Db,sendEventsForced:b(Fa,this),isUUID:b(tc,this),calculateChecksum:cc,isReferrerUsable:b(xb,
|
|
187
|
+
this),getId:b(vb,this),heartBeat:b(hb,this),toRequestQueue:b(Q,this),reportViewDuration:b(ub,this),loadJS:hc,loadCSS:mb,getLastView:b(rc,this),setToken:b(Yb,this),getToken:b(vc,this),showLoader:ic,hideLoader:jc,setValueInStorage:b(z,this),getValueFromStorage:b(B,this),removeValueFromStorage:b(T,this),add_cly_events:b(Y,this),processScrollView:b(Ab,this),processScroll:b(Xb,this),currentUserAgentString:La,currentUserAgentDataString:Hb,userAgentDeviceDetection:dc,userAgentSearchBotDetection:ec,getRequestQueue:b(xc,
|
|
188
|
+
this),getEventQueue:b(wc,this),sendFetchRequest:b(Wb,this),processAsyncQueue:b(Ha,this),makeNetworkRequest:b(ea,this),onStorageChange:b(Ac,this),clearQueue:b(Bc,this),getLocalQueues:b(Cc,this),testingGetRequests:b(sc,this)});q(this,qa,{sendInstantHCRequest:function(){if(b(M,a))b(e,a).call(a,f.DEBUG,"sendInstantHCRequest, Offline mode is active. Not sending health check request."),l(fb,a,!0);else{var c=C(a.hcErrorMessage,1E3,"healthCheck",b(e,a));""!==c&&(c=JSON.stringify(c));c={hc:JSON.stringify({el:a.hcErrorCount,
|
|
189
|
+
wl:a.hcWarningCount,sc:a.hcStatusCode,em:c}),metrics:JSON.stringify({_app_version:a.app_version})};b(Ga,a).call(a,c);b(ea,a).call(a,"[healthCheck]",a.url+b(ab,a),c,function(d){d||b(qa,a).resetAndSaveCounters()},!0)}},resetAndSaveCounters:function(){b(qa,a).resetCounters();b(z,a).call(a,Z.errorCount,a.hcErrorCount);b(z,a).call(a,Z.warningCount,a.hcWarningCount);b(z,a).call(a,Z.statusCode,a.hcStatusCode);b(z,a).call(a,Z.errorMessage,a.hcErrorMessage)},incrementErrorCount:function(){a.hcErrorCount++},
|
|
190
|
+
incrementWarningCount:function(){a.hcWarningCount++},resetCounters:function(){a.hcErrorCount=0;a.hcWarningCount=0;a.hcStatusCode=-1;a.hcErrorMessage=""},saveRequestCounters:function(c,d){a.hcStatusCode=c;a.hcErrorMessage=d;b(z,a).call(a,Z.statusCode,a.hcStatusCode);b(z,a).call(a,Z.errorMessage,a.hcErrorMessage)}});l(mc,this,this);l(Ma,this,!t.i);l(X,this,!1);l(ab,this,"/i");l(Na,this,"/o/sdk");l(Oa,this,x("interval",p,500));l(Pa,this,x("queue_size",p,1E3));l(L,this,[]);l(N,this,[]);l(P,this,{});l(la,
|
|
191
|
+
this,[]);l(aa,this,{});l(ba,this,x("ignore_referrers",p,[]));l(bb,this,null);l(wa,this,!0);b(fa,this);l(cb,this,0);l(S,this,null);l(xa,this,0);l(ya,this,0);l(db,this,0);l(Qa,this,x("fail_timeout",p,60));l(za,this,x("inactivity_time",p,20));l(ra,this,0);l(Ra,this,x("session_update",p,60));l(Aa,this,x("max_events",p,100));l(sa,this,x("max_logs",p,null));l(ha,this,x("use_session_cookie",p,!0));l(Ba,this,x("session_cookie_timeout",p,30));l(Sa,this,!0);l(Ta,this,!1);l(M,this,x("offline_mode",p,!1));l(ca,
|
|
192
|
+
this,{});l(ma,this,!0);l(nb,this,K());l(na,this,!0);l(ta,this,null);l(H,this,1);l(Ca,this,!1);l(Da,this,0);l(eb,this,!1);l(oa,this,null);l(Ua,this,null);l(ia,this,null);l(ua,this,x("sdk_name",p,"javascript_native_web"));l(pa,this,x("sdk_version",p,"24.11.2"));l(fb,this,!1);l(gb,this,[]);l(ob,this,3E4);l(Kb,this,"/o/sdk/content");l(Ea,this,!1);l(Va,this,null);l(pb,this,"cly-content-iframe");try{localStorage.setItem("cly_testLocal",!0),localStorage.removeItem("cly_testLocal")}catch(c){b(e,this).call(this,
|
|
193
|
+
f.ERROR,"Local storage test failed, Halting local storage support: "+c),l(na,this,!1)}l(I,this,{});for(var F=0;F<t.features.length;F++)b(I,this)[t.features[F]]={};b(nc,this).call(this,p)}),Fc=!0;t.features="apm attribution clicks crashes events feedback forms location remote-config scrolls sessions star-rating users views".split(" ");t.q=t.q||[];t.onload=t.onload||[];t.CountlyClass=Ec;t.init=function(p){p=p||{};if(t.loadAPMScriptsAsync&&Fc)Fc=!1,Gc(p);else{var v=p.app_key||t.app_key;if(!t.i||!t.i[v]){p=
|
|
194
|
+
new Ec(p);if(!t.i){t.i={};for(var a in p)t[a]=p[a]}t.i[v]=p}return t.i[v]}};t.serialize=function(p){"object"===R(p)&&(p=JSON.stringify(p));return p};t.deserialize=function(p){if(""===p)return p;try{p=JSON.parse(p)}catch(v){Za()&&console.warn("[WARNING] [Countly] deserialize, Could not parse the file:["+p+"], error: "+v)}return p};t.getViewName=function(){return A?window.location.pathname:"web_worker"};t.getViewUrl=function(){return A?window.location.pathname:"web_worker"};t.getSearchQuery=function(){if(A)return window.location.search};
|
|
195
|
+
t.DeviceIdType={DEVELOPER_SUPPLIED:0,SDK_GENERATED:1,TEMPORARY_ID:2};A&&window.addEventListener("storage",function(p){var v=(p.key+"").split("/"),a=v.pop();v=v.pop();if(t.i&&t.i[v])t.i[v]._internals.onStorageChange(a,p.newValue)});va.default=t;Object.defineProperty(va,"__esModule",{value:!0})});
|
package/package.json
CHANGED
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
"default": "./lib/index.cjs"
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
|
-
"version": "0.1.
|
|
16
|
+
"version": "0.1.5",
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"@types/node": "^22.0.0",
|
|
19
19
|
"rimraf": "6.0.1",
|
|
20
20
|
"typescript": "^5.0.4",
|
|
21
|
-
"vite": "^
|
|
21
|
+
"vite": "^6.0.1",
|
|
22
22
|
"vite-plugin-dts": "^4.3.0"
|
|
23
23
|
},
|
|
24
24
|
"scripts": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"clean": "rimraf lib"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"countly-sdk-web": "24.11.
|
|
29
|
+
"countly-sdk-web": "24.11.2"
|
|
30
30
|
},
|
|
31
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "7d584c044eb5dc75ef8054e6711b5253ddffa453"
|
|
32
32
|
}
|