UNPKG

ci-trap-web

Version:

Lightweight mouse and touch event tracker library for browsers.

2 lines (1 loc) 47.4 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).trap={})}(this,(function(e){"use strict";function t(e){let{prototype:t}=e.constructor;const i=(t,i)=>{if("constructor"===i)return;const n=Reflect.getOwnPropertyDescriptor(t,i);n&&"function"==typeof n.value&&(e[i]=e[i].bind(e))};do{Array.from(Reflect.ownKeys(t),(e=>i(t,e))),t=Reflect.getPrototypeOf(t)}while(t!==Object.prototype)}const i={on(e,t){this._eventHandlers||(this._eventHandlers={}),this._eventHandlers[e]||(this._eventHandlers[e]=[]),this._eventHandlers[e].push(t)},off(e,t){this._eventHandlers&&this._eventHandlers[e]&&(this._eventHandlers[e]=this._eventHandlers[e].filter((e=>e!==t)))},emit(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),n=1;n<t;n++)i[n-1]=arguments[n];this._eventHandlers?.[e]&&this._eventHandlers[e].forEach((e=>e.apply(this,i)))}},n="ontouchstart"in window||"onmsgesturestart"in window,r="onpointermove"in window||"onmspointermove"in window,s="onvisibilitychange"in document||"onmozvisibilitychange"in document||"onmsvisibilitychange"in document||"onwebkitvisibilitychange"in document,o="onfreeze"in document,a="active",l="inactive";const c=new class{constructor(){t(this),this.actualizeEpoch()}currentTs(){return performance.now()+this._epoch}convertEventTimeToTs(e){return e<1e12?e+this._epoch:e}actualizeEpoch(){const e=performance.now(),t=(new Date).getTime();this._epoch=t-e}},u={passive:!0,capture:!0};class h{constructor(){t(this),this._registeredElements=[],this._captureCoalescedEvents=!0,this._requestAnimationFrameId=void 0}mountGlobal(){this._registeredElements.length>0||(s?document.addEventListener("visibilitychange",this.handleVisibilityChange):window.addEventListener("pagehide",this.handlePageHide),o&&document.addEventListener("freeze",this.handleFreeze),window.addEventListener("blur",this.handleBlur),window.addEventListener("focus",this.handleFocus),window.addEventListener("scroll",this.handleScroll))}umountGlobal(){this._registeredElements.length>0||(s?document.removeEventListener("visibilitychange",this.handleVisibilityChange):window.removeEventListener("pagehide",this.handlePageHide),o&&document.removeEventListener("freeze",this.handleFreeze),window.removeEventListener("blur",this.handleBlur),window.removeEventListener("focus",this.handleFocus),window.removeEventListener("scroll",this.handleScroll))}mount(e){this._registeredElements.includes(e)||(this.mountGlobal(),n?(e.addEventListener("touchstart",this.handleTouchStart,u),e.addEventListener("touchmove",this.handleTouchMove,u),e.addEventListener("touchend",this.handleTouchEnd,u)):r?(e.addEventListener("pointermove",this.handlePointerMove,u),e.addEventListener("pointerdown",this.handlePointerDown,u),e.addEventListener("pointerup",this.handlePointerUp,u)):(e.addEventListener("mousemove",this.handleMouseMove,u),e.addEventListener("mousedown",this.handleMouseDown,u),e.addEventListener("mouseup",this.handleMouseUp,u)),e.addEventListener("wheel",this.handleWheel,u),this._registeredElements.push(e))}umount(e){if(!this._registeredElements.includes(e))return;n?(e.removeEventListener("touchstart",this.handleTouchStart,u),e.removeEventListener("touchmove",this.handleTouchMove,u),e.removeEventListener("touchend",this.handleTouchEnd,u)):r?(e.removeEventListener("pointermove",this.handlePointerMove,u),e.removeEventListener("pointerdown",this.handlePointerDown,u),e.removeEventListener("pointerup",this.handlePointerUp,u)):(e.removeEventListener("mousemove",this.handleMouseMove,u),e.removeEventListener("mousedown",this.handleMouseDown,u),e.removeEventListener("mouseup",this.handleMouseUp,u)),e.removeEventListener("wheel",this.handleWheel,u);const t=this._registeredElements.indexOf(e);this._registeredElements.splice(t,1),this.umountGlobal()}push(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.emit("message",t)}requestSubmission(){this.emit("requestSubmission")}captureCoalescedEvents(e){this._captureCoalescedEvents=e}handlePointerMove(e){let t=[];this._captureCoalescedEvents&&e.getCoalescedEvents&&(t=e.getCoalescedEvents()),0===t.length?this.handleSinglePointerMove(e,!1):t.forEach(((e,i)=>{this.handleSinglePointerMove(e,i!==t.length-1)}))}handleSinglePointerMove(e,t){switch(e.pointerType){case"mouse":this.handleMouseMove(e,t);break;case"touch":this.push(3,c.convertEventTimeToTs(e.timeStamp),e.pointerId,e.screenX,e.screenY,t?1:0)}}handlePointerDown(e){switch(e.pointerType){case"mouse":this.handleMouseDown(e);break;case"touch":this.push(2,c.convertEventTimeToTs(e.timeStamp),e.pointerId,e.screenX,e.screenY)}}handlePointerUp(e){switch(e.pointerType){case"mouse":this.handleMouseUp(e);break;case"touch":this.push(4,c.convertEventTimeToTs(e.timeStamp),e.pointerId,e.screenX,e.screenY)}}handleMouseMove(e,t){this.push(0,c.convertEventTimeToTs(e.timeStamp),e.screenX,e.screenY,e.buttons,t?1:0)}handleMouseDown(e){this.push(5,c.convertEventTimeToTs(e.timeStamp),e.screenX,e.screenY,e.buttons,e.button)}handleMouseUp(e){this.push(6,c.convertEventTimeToTs(e.timeStamp),e.screenX,e.screenY,e.buttons,e.button)}handleTouchStart(e){this.iterateTouches(e,(t=>{this.push(2,c.convertEventTimeToTs(e.timeStamp),t.identifier,t.screenX,t.screenY)}))}handleTouchMove(e){this.iterateTouches(e,(t=>{this.push(3,c.convertEventTimeToTs(e.timeStamp),t.identifier,t.screenX,t.screenY,0)}))}handleTouchEnd(e){this.iterateTouches(e,(t=>{this.push(4,c.convertEventTimeToTs(e.timeStamp),t.identifier,t.screenX,t.screenY)}))}iterateTouches(e,t){Array.from(e.changedTouches).forEach(t)}handleWheel(e){this.push(9,c.convertEventTimeToTs(e.timeStamp),e.deltaX,e.deltaY,e.deltaZ,e.deltaMode)}handleScroll(e){this.push(10,c.convertEventTimeToTs(e.timeStamp),window.scrollX,window.scrollY)}handleVisibilityChange(){"hidden"===document.visibilityState&&this.requestSubmission()}handlePageHide(){this.requestSubmission()}handleFreeze(){this.requestSubmission()}handleBlur(e){this.push(7,c.convertEventTimeToTs(e.timeStamp),e),this.requestSubmission(),this.emit("pageStateChanged",l)}handleFocus(e){c.actualizeEpoch(),this.emit("pageStateChanged",a),this.push(8,c.convertEventTimeToTs(e.timeStamp),e)}startRequestAnimationFrame(){this._requestAnimationFrameId=requestAnimationFrame(this.onRequestAnimationFrame)}stopRequestAnimationFrame(){void 0!==this._requestAnimationFrameId&&(cancelAnimationFrame(this._requestAnimationFrameId),this._requestAnimationFrameId=void 0)}onRequestAnimationFrame(e){this._requestAnimationFrameId=requestAnimationFrame(this.onRequestAnimationFrame),this.push(20,c.convertEventTimeToTs(e))}}Object.assign(h.prototype,i);var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function m(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var f=function(e){if((e=e||{}).circles)return function(e){const t=[],i=[],n=new Map;if(n.set(Date,(e=>new Date(e))),n.set(Map,((e,t)=>new Map(s(Array.from(e),t)))),n.set(Set,((e,t)=>new Set(s(Array.from(e),t)))),e.constructorHandlers)for(const t of e.constructorHandlers)n.set(t[0],t[1]);let r=null;return e.proto?a:o;function s(e,s){const o=Object.keys(e),a=new Array(o.length);for(let l=0;l<o.length;l++){const c=o[l],u=e[c];if("object"!=typeof u||null===u)a[c]=u;else if(u.constructor!==Object&&(r=n.get(u.constructor)))a[c]=r(u,s);else if(ArrayBuffer.isView(u))a[c]=p(u);else{const e=t.indexOf(u);a[c]=-1!==e?i[e]:s(u)}}return a}function o(e){if("object"!=typeof e||null===e)return e;if(Array.isArray(e))return s(e,o);if(e.constructor!==Object&&(r=n.get(e.constructor)))return r(e,o);const a={};t.push(e),i.push(a);for(const s in e){if(!1===Object.hasOwnProperty.call(e,s))continue;const l=e[s];if("object"!=typeof l||null===l)a[s]=l;else if(l.constructor!==Object&&(r=n.get(l.constructor)))a[s]=r(l,o);else if(ArrayBuffer.isView(l))a[s]=p(l);else{const e=t.indexOf(l);a[s]=-1!==e?i[e]:o(l)}}return t.pop(),i.pop(),a}function a(e){if("object"!=typeof e||null===e)return e;if(Array.isArray(e))return s(e,a);if(e.constructor!==Object&&(r=n.get(e.constructor)))return r(e,a);const o={};t.push(e),i.push(o);for(const s in e){const l=e[s];if("object"!=typeof l||null===l)o[s]=l;else if(l.constructor!==Object&&(r=n.get(l.constructor)))o[s]=r(l,a);else if(ArrayBuffer.isView(l))o[s]=p(l);else{const e=t.indexOf(l);o[s]=-1!==e?i[e]:a(l)}}return t.pop(),i.pop(),o}}(e);const t=new Map;if(t.set(Date,(e=>new Date(e))),t.set(Map,((e,t)=>new Map(n(Array.from(e),t)))),t.set(Set,((e,t)=>new Set(n(Array.from(e),t)))),e.constructorHandlers)for(const i of e.constructorHandlers)t.set(i[0],i[1]);let i=null;return e.proto?function e(r){if("object"!=typeof r||null===r)return r;if(Array.isArray(r))return n(r,e);if(r.constructor!==Object&&(i=t.get(r.constructor)))return i(r,e);const s={};for(const n in r){const o=r[n];"object"!=typeof o||null===o?s[n]=o:o.constructor!==Object&&(i=t.get(o.constructor))?s[n]=i(o,e):ArrayBuffer.isView(o)?s[n]=p(o):s[n]=e(o)}return s}:function e(r){if("object"!=typeof r||null===r)return r;if(Array.isArray(r))return n(r,e);if(r.constructor!==Object&&(i=t.get(r.constructor)))return i(r,e);const s={};for(const n in r){if(!1===Object.hasOwnProperty.call(r,n))continue;const o=r[n];"object"!=typeof o||null===o?s[n]=o:o.constructor!==Object&&(i=t.get(o.constructor))?s[n]=i(o,e):ArrayBuffer.isView(o)?s[n]=p(o):s[n]=e(o)}return s};function n(e,n){const r=Object.keys(e),s=new Array(r.length);for(let o=0;o<r.length;o++){const a=r[o],l=e[a];"object"!=typeof l||null===l?s[a]=l:l.constructor!==Object&&(i=t.get(l.constructor))?s[a]=i(l,n):ArrayBuffer.isView(l)?s[a]=p(l):s[a]=n(l)}return s}};function p(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}var b=m(f());let v=class{constructor(){t(this),this._enabled=!0,this._buffer=[],this._headerItems=[],this._bufferSizeLimit=3600,this._bufferTimeout=12e4,this._bufferTimer=null,this._idleTimeout=2e3,this._idleTimer=null,this._inactiveTimeout=59e3,this._inactiveTimer=null,this._inactive=!1}set bufferSizeLimit(e){this._bufferSizeLimit=e}set bufferTimeout(e){this._bufferTimeout=e,this.setBufferTimer()}clearBufferTimer(){this._bufferTimer&&(window.clearTimeout(this._bufferTimer),this._bufferTimer=null)}setBufferTimer(){this._bufferTimer||"number"==typeof this._bufferTimeout&&(this._bufferTimer=window.setTimeout(this.requestSubmission,this._bufferTimeout))}set idleTimeout(e){this._idleTimeout=e,this.setIdleTimer()}set inactiveTimeout(e){this._inactiveTimeout=e,this.setInactiveTimer()}clearIdleTimer(){this._idleTimer&&(window.clearTimeout(this._idleTimer),this._idleTimer=null)}setIdleTimer(){"number"==typeof this._idleTimeout&&(this._idleTimer=window.setTimeout(this.requestSubmission,this._idleTimeout))}setInactiveTimer(){"number"==typeof this._inactiveTimeout&&(this._inactiveTimer=window.setTimeout(this.bufferInactive,this._inactiveTimeout))}clearInactiveTimer(){this._inactiveTimer&&(window.clearTimeout(this._inactiveTimer),this._inactiveTimer=null)}push(e,t){if(!this._enabled)return;for(var i=arguments.length,n=new Array(i>2?i-2:0),r=2;r<i;r++)n[r-2]=arguments[r];const s=[e,t,...n];this.bufferActive(),this.clearInactiveTimer(),this.clearIdleTimer(),this._buffer.push(s),this.setInactiveTimer(),this.setIdleTimer(),this.setBufferTimer(),this._buffer.length>=this._bufferSizeLimit&&this.requestSubmission()}addHeaderItem(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this._headerItems.push([...t])}flush(){this.clearIdleTimer(),this.clearBufferTimer();const e=this._headerItems.concat(this._buffer);return this._buffer.length=0,this._headerItems.length=0,e}isEmpty(){return 0===this._buffer.length}bufferInactive(){return this._inactive=!0,this.emit("bufferInactive")}bufferActive(){return this._inactive?(this._inactive=!1,this.emit("bufferActive")):null}requestSubmission(e){return this.emit("requestSubmission",e)}enable(){this._enabled=!0,this._inactive=!1,this.setIdleTimer(),this.setBufferTimer(),this.setInactiveTimer()}disable(){this.clearInactiveTimer(),this.clearIdleTimer(),this.clearBufferTimer(),this.requestSubmission(!0),this._enabled=!1,this._headerItems.length=0}collectedEvents(){return b(this._buffer)}};Object.assign(v.prototype,i);var g=Uint8Array,w=Uint16Array,S=Int32Array,y=new g([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),_=new g([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),T=new g([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),E=function(e,t){for(var i=new w(31),n=0;n<31;++n)i[n]=t+=1<<e[n-1];var r=new S(i[30]);for(n=1;n<30;++n)for(var s=i[n];s<i[n+1];++s)r[s]=s-i[n]<<5|n;return{b:i,r:r}},x=E(y,2),M=x.b,O=x.r;M[28]=258,O[258]=28;for(var I=E(_,0).r,C=new w(32768),A=0;A<32768;++A){var P=(43690&A)>>1|(21845&A)<<1;P=(61680&(P=(52428&P)>>2|(13107&P)<<2))>>4|(3855&P)<<4,C[A]=((65280&P)>>8|(255&P)<<8)>>1}var B=function(e,t,i){for(var n=e.length,r=0,s=new w(t);r<n;++r)e[r]&&++s[e[r]-1];var o,a=new w(t);for(r=1;r<t;++r)a[r]=a[r-1]+s[r-1]<<1;if(i){o=new w(1<<t);var l=15-t;for(r=0;r<n;++r)if(e[r])for(var c=r<<4|e[r],u=t-e[r],h=a[e[r]-1]++<<u,d=h|(1<<u)-1;h<=d;++h)o[C[h]>>l]=c}else for(o=new w(n),r=0;r<n;++r)e[r]&&(o[r]=C[a[e[r]-1]++]>>15-e[r]);return o},k=new g(288);for(A=0;A<144;++A)k[A]=8;for(A=144;A<256;++A)k[A]=9;for(A=256;A<280;++A)k[A]=7;for(A=280;A<288;++A)k[A]=8;var R=new g(32);for(A=0;A<32;++A)R[A]=5;var L=B(k,9,0),F=B(R,5,0),j=function(e){return(e+7)/8|0},W=function(e,t,i){(null==t||t<0)&&(t=0),(null==i||i>e.length)&&(i=e.length);var n=new g(i-t);return n.set(e.subarray(t,i)),n},D=function(e,t,i){i<<=7&t;var n=t/8|0;e[n]|=i,e[n+1]|=i>>8},U=function(e,t,i){i<<=7&t;var n=t/8|0;e[n]|=i,e[n+1]|=i>>8,e[n+2]|=i>>16},H=function(e,t){for(var i=[],n=0;n<e.length;++n)e[n]&&i.push({s:n,f:e[n]});var r=i.length,s=i.slice();if(!r)return{t:$,l:0};if(1==r){var o=new g(i[0].s+1);return o[i[0].s]=1,{t:o,l:1}}i.sort((function(e,t){return e.f-t.f})),i.push({s:-1,f:25001});var a=i[0],l=i[1],c=0,u=1,h=2;for(i[0]={s:-1,f:a.f+l.f,l:a,r:l};u!=r-1;)a=i[i[c].f<i[h].f?c++:h++],l=i[c!=u&&i[c].f<i[h].f?c++:h++],i[u++]={s:-1,f:a.f+l.f,l:a,r:l};var d=s[0].s;for(n=1;n<r;++n)s[n].s>d&&(d=s[n].s);var m=new w(d+1),f=z(i[u-1],m,0);if(f>t){n=0;var p=0,b=f-t,v=1<<b;for(s.sort((function(e,t){return m[t.s]-m[e.s]||e.f-t.f}));n<r;++n){var S=s[n].s;if(!(m[S]>t))break;p+=v-(1<<f-m[S]),m[S]=t}for(p>>=b;p>0;){var y=s[n].s;m[y]<t?p-=1<<t-m[y]++-1:++n}for(;n>=0&&p;--n){var _=s[n].s;m[_]==t&&(--m[_],++p)}f=t}return{t:new g(m),l:f}},z=function(e,t,i){return-1==e.s?Math.max(z(e.l,t,i+1),z(e.r,t,i+1)):t[e.s]=i},K=function(e){for(var t=e.length;t&&!e[--t];);for(var i=new w(++t),n=0,r=e[0],s=1,o=function(e){i[n++]=e},a=1;a<=t;++a)if(e[a]==r&&a!=t)++s;else{if(!r&&s>2){for(;s>138;s-=138)o(32754);s>2&&(o(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(o(r),--s;s>6;s-=6)o(8304);s>2&&(o(s-3<<5|8208),s=0)}for(;s--;)o(r);s=1,r=e[a]}return{c:i.subarray(0,n),n:t}},N=function(e,t){for(var i=0,n=0;n<t.length;++n)i+=e[n]*t[n];return i},q=function(e,t,i){var n=i.length,r=j(t+2);e[r]=255&n,e[r+1]=n>>8,e[r+2]=255^e[r],e[r+3]=255^e[r+1];for(var s=0;s<n;++s)e[r+s+4]=i[s];return 8*(r+4+n)},G=function(e,t,i,n,r,s,o,a,l,c,u){D(t,u++,i),++r[256];for(var h=H(r,15),d=h.t,m=h.l,f=H(s,15),p=f.t,b=f.l,v=K(d),g=v.c,S=v.n,E=K(p),x=E.c,M=E.n,O=new w(19),I=0;I<g.length;++I)++O[31&g[I]];for(I=0;I<x.length;++I)++O[31&x[I]];for(var C=H(O,7),A=C.t,P=C.l,j=19;j>4&&!A[T[j-1]];--j);var W,z,G,V,$=c+5<<3,X=N(r,k)+N(s,R)+o,Y=N(r,d)+N(s,p)+o+14+3*j+N(O,A)+2*O[16]+3*O[17]+7*O[18];if(l>=0&&$<=X&&$<=Y)return q(t,u,e.subarray(l,l+c));if(D(t,u,1+(Y<X)),u+=2,Y<X){W=B(d,m,0),z=d,G=B(p,b,0),V=p;var J=B(A,P,0);D(t,u,S-257),D(t,u+5,M-1),D(t,u+10,j-4),u+=14;for(I=0;I<j;++I)D(t,u+3*I,A[T[I]]);u+=3*j;for(var Z=[g,x],Q=0;Q<2;++Q){var ee=Z[Q];for(I=0;I<ee.length;++I){var te=31&ee[I];D(t,u,J[te]),u+=A[te],te>15&&(D(t,u,ee[I]>>5&127),u+=ee[I]>>12)}}}else W=L,z=k,G=F,V=R;for(I=0;I<a;++I){var ie=n[I];if(ie>255){U(t,u,W[(te=ie>>18&31)+257]),u+=z[te+257],te>7&&(D(t,u,ie>>23&31),u+=y[te]);var ne=31&ie;U(t,u,G[ne]),u+=V[ne],ne>3&&(U(t,u,ie>>5&8191),u+=_[ne])}else U(t,u,W[ie]),u+=z[ie]}return U(t,u,W[256]),u+z[256]},V=new S([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),$=new g(0),X=function(){var e=1,t=0;return{p:function(i){for(var n=e,r=t,s=0|i.length,o=0;o!=s;){for(var a=Math.min(o+2655,s);o<a;++o)r+=n+=i[o];n=(65535&n)+15*(n>>16),r=(65535&r)+15*(r>>16)}e=n,t=r},d:function(){return(255&(e%=65521))<<24|(65280&e)<<8|(255&(t%=65521))<<8|t>>8}}},Y=function(e,t,i,n,r){if(!r&&(r={l:1},t.dictionary)){var s=t.dictionary.subarray(-32768),o=new g(s.length+e.length);o.set(s),o.set(e,s.length),e=o,r.w=s.length}return function(e,t,i,n,r,s){var o=s.z||e.length,a=new g(n+o+5*(1+Math.ceil(o/7e3))+r),l=a.subarray(n,a.length-r),c=s.l,u=7&(s.r||0);if(t){u&&(l[0]=s.r>>3);for(var h=V[t-1],d=h>>13,m=8191&h,f=(1<<i)-1,p=s.p||new w(32768),b=s.h||new w(f+1),v=Math.ceil(i/3),T=2*v,E=function(t){return(e[t]^e[t+1]<<v^e[t+2]<<T)&f},x=new S(25e3),M=new w(288),C=new w(32),A=0,P=0,B=s.i||0,k=0,R=s.w||0,L=0;B+2<o;++B){var F=E(B),D=32767&B,U=b[F];if(p[D]=U,b[F]=D,R<=B){var H=o-B;if((A>7e3||k>24576)&&(H>423||!c)){u=G(e,l,0,x,M,C,P,k,L,B-L,u),k=A=P=0,L=B;for(var z=0;z<286;++z)M[z]=0;for(z=0;z<30;++z)C[z]=0}var K=2,N=0,$=m,X=D-U&32767;if(H>2&&F==E(B-X))for(var Y=Math.min(d,H)-1,J=Math.min(32767,B),Z=Math.min(258,H);X<=J&&--$&&D!=U;){if(e[B+K]==e[B+K-X]){for(var Q=0;Q<Z&&e[B+Q]==e[B+Q-X];++Q);if(Q>K){if(K=Q,N=X,Q>Y)break;var ee=Math.min(X,Q-2),te=0;for(z=0;z<ee;++z){var ie=B-X+z&32767,ne=ie-p[ie]&32767;ne>te&&(te=ne,U=ie)}}}X+=(D=U)-(U=p[D])&32767}if(N){x[k++]=268435456|O[K]<<18|I[N];var re=31&O[K],se=31&I[N];P+=y[re]+_[se],++M[257+re],++C[se],R=B+K,++A}else x[k++]=e[B],++M[e[B]]}}for(B=Math.max(B,R);B<o;++B)x[k++]=e[B],++M[e[B]];u=G(e,l,c,x,M,C,P,k,L,B-L,u),c||(s.r=7&u|l[u/8|0]<<3,u-=7,s.h=b,s.p=p,s.i=B,s.w=R)}else{for(B=s.w||0;B<o+c;B+=65535){var oe=B+65535;oe>=o&&(l[u/8|0]=c,oe=o),u=q(l,u+1,e.subarray(B,oe))}s.i=o}return W(a,0,n+j(u)+r)}(e,null==t.level?6:t.level,null==t.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(e.length)))):12+t.mem,i,n,r)},J=function(e,t,i){for(;i;++t)e[t]=i,i>>>=8};function Z(e,t){t||(t={});var i=X();i.p(e);var n=Y(e,t,t.dictionary?6:2,4);return function(e,t){var i=t.level,n=0==i?0:i<6?1:9==i?3:2;if(e[0]=120,e[1]=n<<6|(t.dictionary&&32),e[1]|=31-(e[0]<<8|e[1])%31,t.dictionary){var r=X();r.p(t.dictionary),J(e,2,r.d())}}(n,t),J(n,n.length-4,i.d()),n}var Q="undefined"!=typeof TextEncoder&&new TextEncoder,ee="undefined"!=typeof TextDecoder&&new TextDecoder;try{ee.decode($,{stream:!0}),1}catch(e){}class te{constructor(e){t(this),this._metadata=e,this._enableCompression=false,this._url=this.createUrl("?UNCONFIGURED=http")}set url(e){this._url=this.createUrl(e)}createUrl(e){const t=new URL(e,window.location);return t.pathname=t.pathname.replace("$%7BsessionId%7D",this._metadata.sessionId).replace("$%7BstreamId%7D",this._metadata.streamId),t}async submit(e){this.emit("dataSubmitted",e)}}Object.assign(te.prototype,i);class ie extends te{constructor(e){super(e),t(this)}set enableCompression(e){this._enableCompression=!!e}async submit(e){super.submit(e);const t=this._enableCompression?Z(function(e,t){if(t){for(var i=new g(e.length),n=0;n<e.length;++n)i[n]=e.charCodeAt(n);return i}if(Q)return Q.encode(e);var r=e.length,s=new g(e.length+(e.length>>1)),o=0,a=function(e){s[o++]=e};for(n=0;n<r;++n){if(o+5>s.length){var l=new g(o+8+(r-n<<1));l.set(s),s=l}var c=e.charCodeAt(n);c<128||t?a(c):c<2048?(a(192|c>>6),a(128|63&c)):c>55295&&c<57344?(a(240|(c=65536+(1047552&c)|1023&e.charCodeAt(++n))>>18),a(128|c>>12&63),a(128|c>>6&63),a(128|63&c)):(a(224|c>>12),a(128|c>>6&63),a(128|63&c))}return W(s,0,o)}(JSON.stringify(e)),{level:9,mem:10}):JSON.stringify(e);let i="text/plain";"string"==typeof this._metadata.apiKeyName&&""!==this._metadata.apiKeyName&&"string"==typeof this._metadata.apiKeyValue&&""!==this._metadata.apiKeyValue&&(i+=`; ${this._metadata.apiKeyName}=${this._metadata.apiKeyValue}`),i+="; encoding=json"+(this._enableCompression?"+zlib":""),await fetch(this._url.href,{method:"POST",mode:"cors",cache:"no-cache",credentials:"omit",headers:{"Content-Type":i},redirect:"follow",referrerPolicy:"origin",body:t})}close(){}}class ne extends te{constructor(e,i){super(e),t(this),this._logger=i,this._socket=null}set enableCompression(e){this.logger("unnecessary enableCompression call")}set url(e){this._socket&&(this._socket.close(),this._socket=null),super.url=e}async submit(e){super.submit(e),null===this._socket&&await this.initializeSocket(),await this._socket.send(JSON.stringify(e))}async initializeSocket(){const e=this._url;!e.protocol.match("ws")&&e.protocol.match("http")&&(e.protocol=e.protocol.replace("http","ws")),this._socket=new WebSocket(e),await this.setupListenersOnConnect()}setupListenersOnConnect(){const e=this._socket;return new Promise(((t,i)=>{e.addEventListener("error",(e=>{this._logger(`WebSocket connection error: ${e}`),i(new Error(e))})),e.addEventListener("open",(()=>{e.addEventListener("close",(()=>{this._logger("WebsSocket connection closed"),this._socket=null})),t()}))}))}close(){null!=this._socket&&this._socket.close()}}class re extends te{constructor(e){super(e),t(this)}set enableCompression(e){}close(){}}class se{constructor(){t(this),this._inMemoryEventStorage=[],this._sizeLimit=1e4}get sizeLimit(){return this._sizeLimit}set sizeLimit(e){this._sizeLimit=e}get inMemoryEventStorage(){return this._inMemoryEventStorage}set inMemoryEventStorage(e){this._inMemoryEventStorage=e}onDataSubmitted(e){this.inMemoryEventStorage.push(e),this.cleanUpInMemoryBufferIfNeeded()}flushStorage(){const e=this.inMemoryEventStorage.flat();return this.inMemoryEventStorage=[],e}cleanUpInMemoryBufferIfNeeded(){let e=this.eventCount();for(;e>this.sizeLimit;){e-=this.inMemoryEventStorage.shift().length}}eventCount(){return this.inMemoryEventStorage.reduce(((e,t)=>e+t.length),0)}collectedEvents(){return b(this.inMemoryEventStorage.flat())}}let oe;const ae=new Uint8Array(16);function le(){if(!oe&&(oe="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!oe))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return oe(ae)}const ce=[];for(let e=0;e<256;++e)ce.push((e+256).toString(16).slice(1));var ue={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function he(e,t,i){if(ue.randomUUID&&!t&&!e)return ue.randomUUID();const n=(e=e||{}).random||(e.rng||le)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,t){i=i||0;for(let e=0;e<16;++e)t[i+e]=n[e];return t}return function(e,t=0){return(ce[e[t+0]]+ce[e[t+1]]+ce[e[t+2]]+ce[e[t+3]]+"-"+ce[e[t+4]]+ce[e[t+5]]+"-"+ce[e[t+6]]+ce[e[t+7]]+"-"+ce[e[t+8]]+ce[e[t+9]]+"-"+ce[e[t+10]]+ce[e[t+11]]+ce[e[t+12]]+ce[e[t+13]]+ce[e[t+14]]+ce[e[t+15]]).toLowerCase()}(n)}function de(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)e[n]=i[n]}return e}var me=function e(t,i){function n(e,n,r){if("undefined"!=typeof document){"number"==typeof(r=de({},i,r)).expires&&(r.expires=new Date(Date.now()+864e5*r.expires)),r.expires&&(r.expires=r.expires.toUTCString()),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var s="";for(var o in r)r[o]&&(s+="; "+o,!0!==r[o]&&(s+="="+r[o].split(";")[0]));return document.cookie=e+"="+t.write(n,e)+s}}return Object.create({set:n,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var i=document.cookie?document.cookie.split("; "):[],n={},r=0;r<i.length;r++){var s=i[r].split("="),o=s.slice(1).join("=");try{var a=decodeURIComponent(s[0]);if(n[a]=t.read(o,a),e===a)break}catch(e){}}return e?n[e]:n}},remove:function(e,t){n(e,"",de({},t,{expires:-1}))},withAttributes:function(t){return e(this.converter,de({},this.attributes,t))},withConverter:function(t){return e(de({},this.converter,t),this.attributes)}},{attributes:{value:Object.freeze(i)},converter:{value:Object.freeze(t)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"}),fe={exports:{}};!function(e,t){(function(){var i={function:!0,object:!0}[typeof window]&&window||this,n=t,r=e&&!e.nodeType&&e,s=n&&r&&"object"==typeof d&&d;!s||s.global!==s&&s.window!==s&&s.self!==s||(i=s);var o=Math.pow(2,53)-1,a=/\bOpera/,l=Object.prototype,c=l.hasOwnProperty,u=l.toString;function h(e){return(e=String(e)).charAt(0).toUpperCase()+e.slice(1)}function m(e){return e=g(e),/^(?:webOS|i(?:OS|P))/.test(e)?e:h(e)}function f(e,t){for(var i in e)c.call(e,i)&&t(e[i],i,e)}function p(e){return null==e?h(e):u.call(e).slice(8,-1)}function b(e){return String(e).replace(/([ -])(?!$)/g,"$1?")}function v(e,t){var i=null;return function(e,t){var i=-1,n=e?e.length:0;if("number"==typeof n&&n>-1&&n<=o)for(;++i<n;)t(e[i],i,e);else f(e,t)}(e,(function(n,r){i=t(i,n,r,e)})),i}function g(e){return String(e).replace(/^ +| +$/g,"")}var w=function e(t){var n=i,r=t&&"object"==typeof t&&"String"!=p(t);r&&(n=t,t=null);var s=n.navigator||{},o=s.userAgent||"";t||(t=o);var l,c,h,d,w,S=r?!!s.likeChrome:/\bChrome\b/.test(t)&&!/internal|\n/i.test(u.toString()),y="Object",_=r?y:"ScriptBridgingProxyObject",T=r?y:"Environment",E=r&&n.java?"JavaPackage":p(n.java),x=r?y:"RuntimeObject",M=/\bJava/.test(E)&&n.java,O=M&&p(n.environment)==T,I=M?"a":"α",C=M?"b":"β",A=n.document||{},P=n.operamini||n.opera,B=a.test(B=r&&P?P["[[Class]]"]:p(P))?B:P=null,k=t,R=[],L=null,F=t==o,j=F&&P&&"function"==typeof P.version&&P.version(),W=v([{label:"EdgeHTML",pattern:"Edge"},"Trident",{label:"WebKit",pattern:"AppleWebKit"},"iCab","Presto","NetFront","Tasman","KHTML","Gecko"],(function(e,i){return e||RegExp("\\b"+(i.pattern||b(i))+"\\b","i").exec(t)&&(i.label||i)})),D=function(e){return v(e,(function(e,i){return e||RegExp("\\b"+(i.pattern||b(i))+"\\b","i").exec(t)&&(i.label||i)}))}(["Adobe AIR","Arora","Avant Browser","Breach","Camino","Electron","Epiphany","Fennec","Flock","Galeon","GreenBrowser","iCab","Iceweasel","K-Meleon","Konqueror","Lunascape","Maxthon",{label:"Microsoft Edge",pattern:"(?:Edge|Edg|EdgA|EdgiOS)"},"Midori","Nook Browser","PaleMoon","PhantomJS","Raven","Rekonq","RockMelt",{label:"Samsung Internet",pattern:"SamsungBrowser"},"SeaMonkey",{label:"Silk",pattern:"(?:Cloud9|Silk-Accelerated)"},"Sleipnir","SlimBrowser",{label:"SRWare Iron",pattern:"Iron"},"Sunrise","Swiftfox","Vivaldi","Waterfox","WebPositive",{label:"Yandex Browser",pattern:"YaBrowser"},{label:"UC Browser",pattern:"UCBrowser"},"Opera Mini",{label:"Opera Mini",pattern:"OPiOS"},"Opera",{label:"Opera",pattern:"OPR"},"Chromium","Chrome",{label:"Chrome",pattern:"(?:HeadlessChrome)"},{label:"Chrome Mobile",pattern:"(?:CriOS|CrMo)"},{label:"Firefox",pattern:"(?:Firefox|Minefield)"},{label:"Firefox for iOS",pattern:"FxiOS"},{label:"IE",pattern:"IEMobile"},{label:"IE",pattern:"MSIE"},"Safari"]),U=K([{label:"BlackBerry",pattern:"BB10"},"BlackBerry",{label:"Galaxy S",pattern:"GT-I9000"},{label:"Galaxy S2",pattern:"GT-I9100"},{label:"Galaxy S3",pattern:"GT-I9300"},{label:"Galaxy S4",pattern:"GT-I9500"},{label:"Galaxy S5",pattern:"SM-G900"},{label:"Galaxy S6",pattern:"SM-G920"},{label:"Galaxy S6 Edge",pattern:"SM-G925"},{label:"Galaxy S7",pattern:"SM-G930"},{label:"Galaxy S7 Edge",pattern:"SM-G935"},"Google TV","Lumia","iPad","iPod","iPhone","Kindle",{label:"Kindle Fire",pattern:"(?:Cloud9|Silk-Accelerated)"},"Nexus","Nook","PlayBook","PlayStation Vita","PlayStation","TouchPad","Transformer",{label:"Wii U",pattern:"WiiU"},"Wii","Xbox One",{label:"Xbox 360",pattern:"Xbox"},"Xoom"]),H=function(e){return v(e,(function(e,i,n){return e||(i[U]||i[/^[a-z]+(?: +[a-z]+\b)*/i.exec(U)]||RegExp("\\b"+b(n)+"(?:\\b|\\w*\\d)","i").exec(t))&&n}))}({Apple:{iPad:1,iPhone:1,iPod:1},Alcatel:{},Archos:{},Amazon:{Kindle:1,"Kindle Fire":1},Asus:{Transformer:1},"Barnes & Noble":{Nook:1},BlackBerry:{PlayBook:1},Google:{"Google TV":1,Nexus:1},HP:{TouchPad:1},HTC:{},Huawei:{},Lenovo:{},LG:{},Microsoft:{Xbox:1,"Xbox One":1},Motorola:{Xoom:1},Nintendo:{"Wii U":1,Wii:1},Nokia:{Lumia:1},Oppo:{},Samsung:{"Galaxy S":1,"Galaxy S2":1,"Galaxy S3":1,"Galaxy S4":1},Sony:{PlayStation:1,"PlayStation Vita":1},Xiaomi:{Mi:1,Redmi:1}}),z=function(e){return v(e,(function(e,i){var n=i.pattern||b(i);return!e&&(e=RegExp("\\b"+n+"(?:/[\\d.]+|[ \\w.]*)","i").exec(t))&&(e=function(e,t,i){var n={"10.0":"10",6.4:"10 Technical Preview",6.3:"8.1",6.2:"8",6.1:"Server 2008 R2 / 7","6.0":"Server 2008 / Vista",5.2:"Server 2003 / XP 64-bit",5.1:"XP",5.01:"2000 SP1","5.0":"2000","4.0":"NT","4.90":"ME"};return t&&i&&/^Win/i.test(e)&&!/^Windows Phone /i.test(e)&&(n=n[/[\d.]+$/.exec(e)])&&(e="Windows "+n),e=String(e),t&&i&&(e=e.replace(RegExp(t,"i"),i)),m(e.replace(/ ce$/i," CE").replace(/\bhpw/i,"web").replace(/\bMacintosh\b/,"Mac OS").replace(/_PowerPC\b/i," OS").replace(/\b(OS X) [^ \d]+/i,"$1").replace(/\bMac (OS X)\b/,"$1").replace(/\/(\d)/," $1").replace(/_/g,".").replace(/(?: BePC|[ .]*fc[ \d.]+)$/i,"").replace(/\bx86\.64\b/gi,"x86_64").replace(/\b(Windows Phone) OS\b/,"$1").replace(/\b(Chrome OS \w+) [\d.]+\b/,"$1").split(" on ")[0])}(e,n,i.label||i)),e}))}(["Windows Phone","KaiOS","Android","CentOS",{label:"Chrome OS",pattern:"CrOS"},"Debian",{label:"DragonFly BSD",pattern:"DragonFly"},"Fedora","FreeBSD","Gentoo","Haiku","Kubuntu","Linux Mint","OpenBSD","Red Hat","SuSE","Ubuntu","Xubuntu","Cygwin","Symbian OS","hpwOS","webOS ","webOS","Tablet OS","Tizen","Linux","Mac OS X","Macintosh","Mac","Windows 98;","Windows "]);function K(e){return v(e,(function(e,i){var n=i.pattern||b(i);return!e&&(e=RegExp("\\b"+n+" *\\d+[.\\w_]*","i").exec(t)||RegExp("\\b"+n+" *\\w+-[\\w]*","i").exec(t)||RegExp("\\b"+n+"(?:; *(?:[a-z]+[_-])?[a-z]+\\d+|[^ ();-]*)","i").exec(t))&&((e=String(i.label&&!RegExp(n,"i").test(i.label)?i.label:e).split("/"))[1]&&!/[\d.]+/.test(e[0])&&(e[0]+=" "+e[1]),i=i.label||i,e=m(e[0].replace(RegExp(n,"i"),i).replace(RegExp("; *(?:"+i+"[_-])?","i")," ").replace(RegExp("("+i+")[-_.]?(\\w)","i"),"$1 $2"))),e}))}function N(e){return v(e,(function(e,i){return e||(RegExp(i+"(?:-[\\d.]+/|(?: for [\\w-]+)?[ /-])([\\d.]+[^ ();/_-]*)","i").exec(t)||0)[1]||null}))}if(W&&(W=[W]),/\bAndroid\b/.test(z)&&!U&&(l=/\bAndroid[^;]*;(.*?)(?:Build|\) AppleWebKit)\b/i.exec(t))&&(U=g(l[1]).replace(/^[a-z]{2}-[a-z]{2};\s*/i,"")||null),H&&!U?U=K([H]):H&&U&&(U=U.replace(RegExp("^("+b(H)+")[-_.\\s]","i"),H+" ").replace(RegExp("^("+b(H)+")[-_.]?(\\w)","i"),H+" $2")),(l=/\bGoogle TV\b/.exec(U))&&(U=l[0]),/\bSimulator\b/i.test(t)&&(U=(U?U+" ":"")+"Simulator"),"Opera Mini"==D&&/\bOPiOS\b/.test(t)&&R.push("running in Turbo/Uncompressed mode"),"IE"==D&&/\blike iPhone OS\b/.test(t)?(H=(l=e(t.replace(/like iPhone OS/,""))).manufacturer,U=l.product):/^iP/.test(U)?(D||(D="Safari"),z="iOS"+((l=/ OS ([\d_]+)/i.exec(t))?" "+l[1].replace(/_/g,"."):"")):"Konqueror"==D&&/^Linux\b/i.test(z)?z="Kubuntu":H&&"Google"!=H&&(/Chrome/.test(D)&&!/\bMobile Safari\b/i.test(t)||/\bVita\b/.test(U))||/\bAndroid\b/.test(z)&&/^Chrome/.test(D)&&/\bVersion\//i.test(t)?(D="Android Browser",z=/\bAndroid\b/.test(z)?z:"Android"):"Silk"==D?(/\bMobi/i.test(t)||(z="Android",R.unshift("desktop mode")),/Accelerated *= *true/i.test(t)&&R.unshift("accelerated")):"UC Browser"==D&&/\bUCWEB\b/.test(t)?R.push("speed mode"):"PaleMoon"==D&&(l=/\bFirefox\/([\d.]+)\b/.exec(t))?R.push("identifying as Firefox "+l[1]):"Firefox"==D&&(l=/\b(Mobile|Tablet|TV)\b/i.exec(t))?(z||(z="Firefox OS"),U||(U=l[1])):!D||(l=!/\bMinefield\b/i.test(t)&&/\b(?:Firefox|Safari)\b/.exec(D))?(D&&!U&&/[\/,]|^[^(]+?\)/.test(t.slice(t.indexOf(l+"/")+8))&&(D=null),(l=U||H||z)&&(U||H||/\b(?:Android|Symbian OS|Tablet OS|webOS)\b/.test(z))&&(D=/[a-z]+(?: Hat)?/i.exec(/\bAndroid\b/.test(z)?z:l)+" Browser")):"Electron"==D&&(l=(/\bChrome\/([\d.]+)\b/.exec(t)||0)[1])&&R.push("Chromium "+l),j||(j=N(["(?:Cloud9|CriOS|CrMo|Edge|Edg|EdgA|EdgiOS|FxiOS|HeadlessChrome|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\d.]+$)|UCBrowser|YaBrowser)","Version",b(D),"(?:Firefox|Minefield|NetFront)"])),(l=("iCab"==W&&parseFloat(j)>3?"WebKit":/\bOpera\b/.test(D)&&(/\bOPR\b/.test(t)?"Blink":"Presto"))||/\b(?:Midori|Nook|Safari)\b/i.test(t)&&!/^(?:Trident|EdgeHTML)$/.test(W)&&"WebKit"||!W&&/\bMSIE\b/i.test(t)&&("Mac OS"==z?"Tasman":"Trident")||"WebKit"==W&&/\bPlayStation\b(?! Vita\b)/i.test(D)&&"NetFront")&&(W=[l]),"IE"==D&&(l=(/; *(?:XBLWP|ZuneWP)(\d+)/i.exec(t)||0)[1])?(D+=" Mobile",z="Windows Phone "+(/\+$/.test(l)?l:l+".x"),R.unshift("desktop mode")):/\bWPDesktop\b/i.test(t)?(D="IE Mobile",z="Windows Phone 8.x",R.unshift("desktop mode"),j||(j=(/\brv:([\d.]+)/.exec(t)||0)[1])):"IE"!=D&&"Trident"==W&&(l=/\brv:([\d.]+)/.exec(t))&&(D&&R.push("identifying as "+D+(j?" "+j:"")),D="IE",j=l[1]),F){if(d="global",w=null!=(h=n)?typeof h[d]:"number",/^(?:boolean|number|string|undefined)$/.test(w)||"object"==w&&!h[d])p(l=n.runtime)==_?(D="Adobe AIR",z=l.flash.system.Capabilities.os):p(l=n.phantom)==x?(D="PhantomJS",j=(l=l.version||null)&&l.major+"."+l.minor+"."+l.patch):"number"==typeof A.documentMode&&(l=/\bTrident\/(\d+)/i.exec(t))?(j=[j,A.documentMode],(l=+l[1]+4)!=j[1]&&(R.push("IE "+j[1]+" mode"),W&&(W[1]=""),j[1]=l),j="IE"==D?String(j[1].toFixed(1)):j[0]):"number"==typeof A.documentMode&&/^(?:Chrome|Firefox)\b/.test(D)&&(R.push("masking as "+D+" "+j),D="IE",j="11.0",W=["Trident"],z="Windows");else if(M&&(k=(l=M.lang.System).getProperty("os.arch"),z=z||l.getProperty("os.name")+" "+l.getProperty("os.version")),O){try{j=n.require("ringo/engine").version.join("."),D="RingoJS"}catch(e){(l=n.system)&&l.global.system==n.system&&(D="Narwhal",z||(z=l[0].os||null))}D||(D="Rhino")}else"object"==typeof n.process&&!n.process.browser&&(l=n.process)&&("object"==typeof l.versions&&("string"==typeof l.versions.electron?(R.push("Node "+l.versions.node),D="Electron",j=l.versions.electron):"string"==typeof l.versions.nw&&(R.push("Chromium "+j,"Node "+l.versions.node),D="NW.js",j=l.versions.nw)),D||(D="Node.js",k=l.arch,z=l.platform,j=(j=/[\d.]+/.exec(l.version))?j[0]:null));z=z&&m(z)}if(j&&(l=/(?:[ab]|dp|pre|[ab]\d+pre)(?:\d+\+?)?$/i.exec(j)||/(?:alpha|beta)(?: ?\d)?/i.exec(t+";"+(F&&s.appMinorVersion))||/\bMinefield\b/i.test(t)&&"a")&&(L=/b/i.test(l)?"beta":"alpha",j=j.replace(RegExp(l+"\\+?$"),"")+("beta"==L?C:I)+(/\d+\+?/.exec(l)||"")),"Fennec"==D||"Firefox"==D&&/\b(?:Android|Firefox OS|KaiOS)\b/.test(z))D="Firefox Mobile";else if("Maxthon"==D&&j)j=j.replace(/\.[\d.]+/,".x");else if(/\bXbox\b/i.test(U))"Xbox 360"==U&&(z=null),"Xbox 360"==U&&/\bIEMobile\b/.test(t)&&R.unshift("mobile mode");else if(!/^(?:Chrome|IE|Opera)$/.test(D)&&(!D||U||/Browser|Mobi/.test(D))||"Windows CE"!=z&&!/Mobi/i.test(t))if("IE"==D&&F)try{null===n.external&&R.unshift("platform preview")}catch(e){R.unshift("embedded")}else(/\bBlackBerry\b/.test(U)||/\bBB10\b/.test(t))&&(l=(RegExp(U.replace(/ +/g," *")+"/([.\\d]+)","i").exec(t)||0)[1]||j)?(z=((l=[l,/BB10/.test(t)])[1]?(U=null,H="BlackBerry"):"Device Software")+" "+l[0],j=null):this!=f&&"Wii"!=U&&(F&&P||/Opera/.test(D)&&/\b(?:MSIE|Firefox)\b/i.test(t)||"Firefox"==D&&/\bOS X (?:\d+\.){2,}/.test(z)||"IE"==D&&(z&&!/^Win/.test(z)&&j>5.5||/\bWindows XP\b/.test(z)&&j>8||8==j&&!/\bTrident\b/.test(t)))&&!a.test(l=e.call(f,t.replace(a,"")+";"))&&l.name&&(l="ing as "+l.name+((l=l.version)?" "+l:""),a.test(D)?(/\bIE\b/.test(l)&&"Mac OS"==z&&(z=null),l="identify"+l):(l="mask"+l,D=B?m(B.replace(/([a-z])([A-Z])/g,"$1 $2")):"Opera",/\bIE\b/.test(l)&&(z=null),F||(j=null)),W=["Presto"],R.push(l));else D+=" Mobile";(l=(/\bAppleWebKit\/([\d.]+\+?)/i.exec(t)||0)[1])&&(l=[parseFloat(l.replace(/\.(\d)$/,".0$1")),l],"Safari"==D&&"+"==l[1].slice(-1)?(D="WebKit Nightly",L="alpha",j=l[1].slice(0,-1)):j!=l[1]&&j!=(l[2]=(/\bSafari\/([\d.]+\+?)/i.exec(t)||0)[1])||(j=null),l[1]=(/\b(?:Headless)?Chrome\/([\d.]+)/i.exec(t)||0)[1],537.36==l[0]&&537.36==l[2]&&parseFloat(l[1])>=28&&"WebKit"==W&&(W=["Blink"]),F&&(S||l[1])?(W&&(W[1]="like Chrome"),l=l[1]||((l=l[0])<530?1:l<532?2:l<532.05?3:l<533?4:l<534.03?5:l<534.07?6:l<534.1?7:l<534.13?8:l<534.16?9:l<534.24?10:l<534.3?11:l<535.01?12:l<535.02?"13+":l<535.07?15:l<535.11?16:l<535.19?17:l<536.05?18:l<536.1?19:l<537.01?20:l<537.11?"21+":l<537.13?23:l<537.18?24:l<537.24?25:l<537.36?26:"Blink"!=W?"27":"28")):(W&&(W[1]="like Safari"),l=(l=l[0])<400?1:l<500?2:l<526?3:l<533?4:l<534?"4+":l<535?5:l<537?6:l<538?7:l<601?8:l<602?9:l<604?10:l<606?11:l<608?12:"12"),W&&(W[1]+=" "+(l+="number"==typeof l?".x":/[.+]/.test(l)?"":"+")),"Safari"==D&&(!j||parseInt(j)>45)?j=l:"Chrome"==D&&/\bHeadlessChrome/i.test(t)&&R.unshift("headless")),"Opera"==D&&(l=/\bzbov|zvav$/.exec(z))?(D+=" ",R.unshift("desktop mode"),"zvav"==l?(D+="Mini",j=null):D+="Mobile",z=z.replace(RegExp(" *"+l+"$"),"")):"Safari"==D&&/\bChrome\b/.exec(W&&W[1])?(R.unshift("desktop mode"),D="Chrome Mobile",j=null,/\bOS X\b/.test(z)?(H="Apple",z="iOS 4.3+"):z=null):/\bSRWare Iron\b/.test(D)&&!j&&(j=N("Chrome")),j&&0==j.indexOf(l=/[\d.]+$/.exec(z))&&t.indexOf("/"+l+"-")>-1&&(z=g(z.replace(l,""))),z&&-1!=z.indexOf(D)&&!RegExp(D+" OS").test(z)&&(z=z.replace(RegExp(" *"+b(D)+" *"),"")),W&&!/\b(?:Avant|Nook)\b/.test(D)&&(/Browser|Lunascape|Maxthon/.test(D)||"Safari"!=D&&/^iOS/.test(z)&&/\bSafari\b/.test(W[1])||/^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|SRWare Iron|Vivaldi|Web)/.test(D)&&W[1])&&(l=W[W.length-1])&&R.push(l),R.length&&(R=["("+R.join("; ")+")"]),H&&U&&U.indexOf(H)<0&&R.push("on "+H),U&&R.push((/^on /.test(R[R.length-1])?"":"on ")+U),z&&(l=/ ([\d.+]+)$/.exec(z),c=l&&"/"==z.charAt(z.length-l[0].length-1),z={architecture:32,family:l&&!c?z.replace(l[0],""):z,version:l?l[1]:null,toString:function(){var e=this.version;return this.family+(e&&!c?" "+e:"")+(64==this.architecture?" 64-bit":"")}}),(l=/\b(?:AMD|IA|Win|WOW|x86_|x)64\b/i.exec(k))&&!/\bi686\b/i.test(k)?(z&&(z.architecture=64,z.family=z.family.replace(RegExp(" *"+l),"")),D&&(/\bWOW64\b/i.test(t)||F&&/\w(?:86|32)$/.test(s.cpuClass||s.platform)&&!/\bWin64; x64\b/i.test(t))&&R.unshift("32-bit")):z&&/^OS X/.test(z.family)&&"Chrome"==D&&parseFloat(j)>=39&&(z.architecture=64),t||(t=null);var q={};return q.description=t,q.layout=W&&W[0],q.manufacturer=H,q.name=D,q.prerelease=L,q.product=U,q.ua=t,q.version=D&&j,q.os=z||{architecture:null,family:null,version:null,toString:function(){return"null"}},q.parse=e,q.toString=function(){return this.description||""},q.version&&R.unshift(j),q.name&&R.unshift(D),z&&D&&(z!=String(z).split(" ")[0]||z!=D.split(" ")[0]&&!U)&&R.push(U?"("+z+")":"on "+z),R.length&&(q.description=R.join(" ")),q}();n&&r?f(w,(function(e,t){n[t]=e})):i.platform=w}).call(d)}(fe,fe.exports);var pe=m(fe.exports);const be={name:"ci-trap-web",version:"1.0.22",type:"collector"};class ve{constructor(){t(this),this._sessionId=(()=>{let e=me.get("sessionId");return"string"!=typeof e&&(e=he(),me.set("sessionId",e,{path:"/",sameSite:"none",secure:!0})),e})(),this.generateNewStreamId(),this._customMetadata={},this._apiKeyName="GRABOXY-API-KEY",this._apiKeyValue="UNCONFIGURED",this._metadataSubmissionInterval=6e4,this._collectUrls=true,this._components=[be]}get sessionId(){return this._sessionId}get streamId(){return this._streamId}get apiKeyName(){return this._apiKeyName}set apiKeyName(e){this._apiKeyName=e}get apiKeyValue(){return this._apiKeyValue}set apiKeyValue(e){this._apiKeyValue=e}get metadataSubmissionInterval(){return this._metadataSubmissionInterval}set metadataSubmissionInterval(e){this._metadataSubmissionInterval=e,void 0!==this._submissionTimer&&(window.clearInterval(this._submissionTimer),this._submissionTimer=window.setInterval(this.submit,this.metadataSubmissionInterval))}get collectUrls(){return this._collectUrls}set collectUrls(e){this._collectUrls=e}set components(e){this._components=[be,...e]}get schema(){return{version:"1-0-0",components:this._components}}enable(){void 0===this._submissionTimer&&(this._submissionTimer=window.setInterval(this.submit,this.metadataSubmissionInterval),this.submit())}disable(){void 0!==this._submissionTimer&&(window.clearInterval(this._submissionTimer),this._submissionTimer=void 0)}submit(){this.emit("message",this.serializeMetadata())}reset(){this.disable(),this.enable()}generateNewStreamId(){this._streamId=he()}serializeMetadata(){return[11,c.currentTs(),{platform:this.platform,location:this.location,custom:this.custom,screen:this.screen,document:this.document}]}set(e,t){this._customMetadata[e]=t,this.submit()}remove(e){delete this._customMetadata[e],this.submit()}get custom(){return b(this._customMetadata)}get platform(){return{description:pe.description,layout:pe.layout,manufacturer:pe.manufacturer,name:pe.name,prerelease:pe.prerelease,product:pe.product,ua:pe.ua,version:pe.version,os:{architecture:pe.os.architecture,family:pe.os.family,version:pe.os.version}}}get location(){return this.collectUrls?{current:window.location.href,previous:document.referrer}:{}}get screen(){const{screen:e}=window;return{availHeight:e.availHeight,availWidth:e.availWidth,availLeft:e.availLeft,availTop:e.availTop,height:e.height,width:e.width,top:e.top,left:e.left,colorDepth:e.colorDepth,pixelDepth:e.pixelDepth,devicePixelRatio:window.devicePixelRatio,orientation:{...this.orientation}}}get orientation(){let e,t;return window.screen.orientation?(e=window.screen.orientation.type,t=window.screen.orientation.angle):"number"==typeof window.orientation&&(e=90===Math.abs(window.orientation)?"landscape":"portrait",t=window.orientation),{type:e,angle:t}}get document(){const{documentElement:e}=document;return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop,scrollHeight:e.scrollHeight,scrollWidth:e.scrollWidth,offsetHeight:e.offsetHeight,offsetWidth:e.offsetWidth,clientTop:e.clientTop,clientLeft:e.clientLeft,clientHeight:e.clientHeight,clientWidth:e.clientWidth}}}Object.assign(ve.prototype,i);const ge={disableTouchEvents(e){n&&(e.dataset.oldTouchAction||(e.dataset.oldTouchAction=e.style.touchAction),e.style.touchAction="none")},restoreTouchEvents(e){n&&(e.style.touchAction=e.dataset.oldTouchAction,delete e.dataset.oldTouchAction)}};class we{constructor(){t(this),this._buffer=new v(this),this._metadata=new ve,this._handlers=new h,this.state={logger:function(){console.log(...arguments)},transport:new ie(this._metadata),sequenceNumber:0,eventStorage:new se,collectEvents:!1,captureRequestAnimationFrame:!1,onDataSubmittedCallback:void 0,restartOnBecomingActive:!1,isRunning:!1,stopDataCollectionOnPageHide:!1},this._handlers.on("message",this.pushMessage),this._metadata.on("message",this.pushMessage),this._handlers.on("requestSubmission",this.submit),this._buffer.on("requestSubmission",this.submit),this._handlers.on("pageStateChanged",this.onPageStateChanged),this._buffer.on("bufferInactive",this._metadata.disable),this._buffer.on("bufferActive",this._metadata.enable),we.instance||(we.instance=this)}streamId(){return this._metadata.streamId}sessionId(){return this._metadata.sessionId}apiKeyName(e){this._metadata.apiKeyName=e}apiKeyValue(e){this._metadata.apiKeyValue=e}apiKey(e){this._metadata.apiKeyValue=e}components(e){this._metadata.components=e}mount(e){this._handlers.mount(e)}umount(e){this._handlers.umount(e)}idleTimeout(e){this._buffer.idleTimeout=e}inactiveTimeout(e){this._buffer.inactiveTimeout=e}start(){this._buffer.enable(),this.addHeaderToBuffer(),this._metadata.enable(),this.state.captureRequestAnimationFrame&&this._handlers.startRequestAnimationFrame(),this.state.isRunning=!0}stop(){this.submit(!0),this._buffer.disable(),this._metadata.disable(),this._handlers.stopRequestAnimationFrame(),this.state.isRunning=!1}bufferSizeLimit(e){this._buffer.bufferSizeLimit=e}bufferTimeout(e){this._buffer.bufferTimeout=e}enableCompression(e){this.state.transport.enableCompression=e}url(e){this.state.transport.url=e}send(e){"string"==typeof e?this.pushMessage([1,c.currentTs(),{message:e}]):"object"==typeof e&&this.pushMessage([1,c.currentTs(),e])}pushMessage(e){this._buffer.push(...e)}submit(e){if(this._buffer.isEmpty())return Promise.resolve();const t=this._buffer.flush();return e||this.addHeaderToBuffer(),this.state.transport.submit(t)}addHeaderToBuffer(){const e=this.state.sequenceNumber++;this._buffer.addHeaderItem(-1,c.currentTs(),this._metadata.sessionId,this._metadata.streamId,e,this._metadata.schema)}metadata(e,t){this.addCustomMetadata(e,t)}addCustomMetadata(e,t){this._metadata.set(e,t)}removeCustomMetadata(e){this._metadata.remove(e)}customMetadata(){return this._metadata.custom}setLogDestination(e){switch(typeof e){case"string":e=document.getElementById(e);case"object":this.state.logger=function(){for(var t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];e.innerHTML=`${i.join()}\n${e.innerHTML}`};break;default:this.state.logger=function(){console.log(...arguments)}}}setUseWsTransport(e){this.setTransportMethod(e?"ws":"http")}setTransportMethod(e){this.state.transport.off("dataSubmitted",this.state.eventStorage.onDataSubmitted),this.state.transport.off("dataSubmitted",this.state.onDataSubmittedCallback),this.state.transport.close(),e.startsWith("ws")?this.state.transport=new ne(this._metadata,this.log):e.startsWith("http")?this.state.transport=new ie(this._metadata):this.state.transport=new re(this._metadata),this.state.collectEvents&&this.state.transport.on("dataSubmitted",this.state.eventStorage.onDataSubmitted),this.state.onDataSubmittedCallback&&this.state.transport.on("dataSubmitted",this.state.onDataSubmittedCallback)}setCollectEvents(e){this.state.collectEvents=e,e?this.state.transport.on("dataSubmitted",this.state.eventStorage.onDataSubmitted):this.state.transport.off("dataSubmitted",this.state.eventStorage.onDataSubmitted)}setEventCollectionSizeLimit(e){this.state.eventStorage.sizeLimit=e}setMetadataSubmissionInterval(e){this._metadata.metadataSubmissionInterval=e}setMetadataCollectUrls(e){this._metadata.collectUrls=e}submitMetadata(){this._metadata.submit()}setCaptureCoalescedEvents(e){this._handlers.captureCoalescedEvents(e)}setCaptureRequestAnimationFrame(e){this.state.captureRequestAnimationFrame=e,e?this._handlers.startRequestAnimationFrame():this._handlers.stopRequestAnimationFrame()}log(){this.state.logger(...arguments)}collectedEvents(){return this.state.eventStorage.collectedEvents().concat(this._buffer.collectedEvents())}collectedEventCount(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>!0;return this.collectedEvents().filter(e).length}generateNewStreamId(){this._metadata.generateNewStreamId()}flushCollectedEvents(){return this.state.eventStorage.flushStorage()}onDataSubmitted(e){this.state.transport.off("dataSubmitted",this.state.onDataSubmittedCallback),this.state.onDataSubmittedCallback=e,this.state.onDataSubmittedCallback&&this.state.transport.on("dataSubmitted",this.state.onDataSubmittedCallback)}stopDataCollectionOnPageHide(e){this.state.stopDataCollectionOnPageHide=e}onPageStateChanged(e){e===l&&this.state.isRunning&&this.state.stopDataCollectionOnPageHide?(this.stop(),this.state.restartOnBecomingActive=!0):e===a&&this.state.restartOnBecomingActive&&(this.start(),this.state.restartOnBecomingActive=!1)}}Object.assign(we.prototype,ge);const Se=new we;Object.freeze(Se),e.Trap=we,e.default=Se,Object.defineProperty(e,"__esModule",{value:!0})}));